     sessionId = body
 
     if response.statusCode is 200
+      fs.writeFile '.fontello-session', sessionId, (err) ->
+          if not err
+            print 'Session was saved as .fontello-session \n'.green;
+          else
+            print err + "\n";
       sessionUrl = "#{options.host}/#{sessionId}"
       successCallback? sessionUrl
     else
       errorCallback? response
+
+apiRequest = (options, successCallback, errorCallback) ->
+  options.host ?= HOST
+
+  requestOptions = { multipart: true }
+  requestOptions.proxy = options.proxy if options.proxy?
+  if fs.existsSync(".fontello-session")
+    stats = fs.statSync(".fontello-session")
+
+    timeDiff = Math.abs(new Date().getTime() - stats.mtime.getTime());
+    
+    if timeDiff < (1000 * 3600 * 24)
+      print 'Using .fontello-session'.green
+      sessionId = fs.readFileSync('.fontello-session');
+      sessionUrl = "#{options.host}/#{sessionId}"
+      return successCallback? sessionUrl
+    
+  
+  getSession(options, requestOptions, successCallback, errorCallback)
+  
 
 
 fontello =

    # Begin the download
    #
    apiRequest options, (sessionUrl) ->

      requestOptions = {}
      requestOptions.proxy = options.proxy if options.proxy?



HOST = 'http://fontello.com'

getSession = (options, requestOptions, successCallback, errorCallback) ->
  print 'Creating a new session'.green;
  data =
    config:
      file: options.config
