             timeout : opts.timeout
             cb      : opts.cb
 
+    ###
+       The state of the project, which is one of:
+       closed, opened, running,
+       opening, starting, restarting, stopping
+       error
+
+    x={};require('compute').compute_server(keyspace:'devel',cb:(e,s)->console.log(e);x.s=s;x.s.project(project_id:'20257d4e-387c-4b94-a987-5d89a3149a00',cb:(e,p)->console.log(e);x.p=p; x.p.state(cb:console.log)))
+
+
+    ###
+
+    state: (opts) =>
+        opts = defaults opts,
+            cb     : required
+        @_action
+            action : "state"
+            cb     : (err, resp) =>
+                if err
+                    opts.cb(err)
+                else
+                    opts.cb(undefined, resp.state)
+
     # open project files on some node
     open: (opts) =>
         opts = defaults opts,

    f = (cb) ->
        switch mesg.event
            when 'compute'
                compute_server.project_command
                    project_id : mesg.project_id
                    action     : mesg.action
                    args       : mesg.args
                    cb         : (err, resp) ->
                        if err
                            cb(message.error(error:err))
                        else
                            cb(resp)
            when 'ping'
                cb(message.pong())
            else

        opts = defaults opts,
            project_id : required
            cb         : required
        smc_compute
            args : ['status', opts.project_id]
            cb   : (err, r) =>
                if err
                    opts.cb(err)
                else
                    opts.cb(undefined, r['state'])

###########################
## Command line interface
