         dbg = @dbg("manager_run_cell")
         dbg()
         cell = @store.get('cells').get(id)
-
+        input = (cell.get('input') ? '').trim()
+        if input.length == 0
+            @_set
+                type   : 'cell'
+                id     : id
+                state  : null
+                output : []
+            return
+
+        @_sage_session ?= @_client.sage_session(path : @_directory)
+        outputs = []
+        state = 'running'
+        @_set
+            type   : 'cell'
+            id     : id
+            state  : 'running'
+            output : outputs
+        @_sage_session.call
+            input : input
+            cb    : (mesg) =>
+                outputs.push(mesg)
+                if mesg.done
+                    state = 'done'
+                @_set
+                    type   : 'cell'
+                    id     : id
+                    state  : state
+                    output : outputs
+        ###
+
+        @_set
+            type  : 'cell'
+            id    : id
+            state : ''
+            output : []
         try
             out = "#{eval(cell.get('input'))}"
         catch e


    run_code_cell: (id) =>
        @_set
            type  : 'cell'
            id    : id
            state : 'start'

    run_selected_cells: =>
        v = @store.get_selected_cell_ids_list()


immutable  = require('immutable')
underscore = require('underscore')
#async      = require('async')

misc       = require('smc-util/misc')

