         cpus = parseInt argv.shift() if argv[0]?.indexOf '-' < 0
         cpus = 1 if isNaN cpus or cpus < 1
         cpus = MAX_CPUS if cpus > MAX_CPUS
+      when '-s', '--source'
+        source = argv.shift() if argv[0]?.indexOf '-' < 0
+      when '-o', '--out', '-d', '--dynamic'
+        dynamic = argv.shift() if argv[0]?.indexOf '-' < 0
       when '-l', '--language'
         switch argv.shift()
           when 'javascript', 'js' then language = 'javascript'
           else console.error style.error 'Only support javascript or coffeescript language, default coffeescript'
 
+  # build source codes
+  lib = path.join basedir, dynamic
+  src = path.join basedir, source
+  if (language is 'coffeescript') and (fs.existsSync src)
+    fs.mkdirSync lib unless fs.existsSync lib
+    options = ['-w', '-c', '-b', '-o']
+    options = options.concat [dynamic, source]
+    app = spawn 'coffee', options
+    app.stderr.pipe process.stderr
+    app.stdout.pipe process.stdout
+
+  # watch dynamic contents folder
+  (fs.watch lib, -> restart env, cpus) if fs.existsSync lib
+
+  # when worker exit restart it
+  cluster.on 'exit', (worker, code, signal) ->
+    pid = worker.process.pid
+    delete workers[pid]
+    start env if signal isnt 'SIGKILL'
   # found boot file
   filename = path.join basedir, 'index.js'
   unless fs.existsSync filename
     console.error style.error 'Can not found index.js file in ' + basedir
     process.exit 0
   cluster.setupMaster exec: filename
-
-  # when worker exit restart it
-  cluster.on 'exit', (worker, code, signal) ->
-    pid = worker.process.pid
-    delete workers[pid]
-    start env if signal isnt 'SIGKILL'
-
   # running server process
   add env, cpus
 

    switch command
      when 'add' then add env, argv[0]
      when 'clear', 'cls' then process.stdout.write '\x1b[0;0H\x1b[K\x1b[J'
      when 'help', '?' then help SHELL_HELP
      when 'list', 'ls' then list()
      when 'remove', 'rm' then remove argv[0]

\n  __)   |_, (__( |  \'  |  |  \' (__(_ |  |_,
\n   
\n
\n'

# helps
USAGE_HELP = '\x1b[1mPilot\x1b[0m
\nCopyright (c) 2014 Kan Kung-Yip.
\n
\nUsage: pilot [environment] [-c <cpus>] [-s <dir>] [-o|d <dir>] [-l <lang>]
\n       pilot help
\n
\n  Environments:
