diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..ac33634
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+build/
+.*.sw*
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..b6efbe6
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,38 @@
+
+
+    
+    
+
+    
+        
+    
+
+    
+        
+        
+            
+            
+        
+
+        
+        
+            
+                
+            
+        
+
+        
+        
+            
+            
+                
+            
+        
+
+        
+        
+            
+            
+        
+    
+
diff --git a/jdb-build-1.2.xml b/jdb-build-1.2.xml
new file mode 100644
index 0000000..6a7cfce
--- /dev/null
+++ b/jdb-build-1.2.xml
@@ -0,0 +1,187 @@
+
+
+
+    
+
+    
+    
+
+    
+        
+
+        
+
+        
+        
+        
+        
+
+        
+        
+            
+                
+            
+        
+
+        
+            
+                
+            
+        
+
+        
+            
+                
+            
+        
+
+        
+            
+                
+            
+        
+
+    
+
+    
+        
+    
+
+    
+        
+    
+
+    
+    
+
+    
+
+    
+        
+        
+            
+        
+
+        
+            
+        
+    
+
+    
+    
+        
+            
+        
+    
+
+    
+        
+        
+            
+        
+    
+
+    
+    
+        
+
+            
+                
+                
+            
+            
+        
+    
+
+    
+        
+    
+
+    
+
+    
+    
+        
+            
+            
+                
+                
+                
+            
+        
+    
+
+    
+        
+            
+                
+                
+            
+        
+    
+
+    
+
+    
+        
+            
+                
+                
+                
+                
+            
+            
+            
+                
+                    
+                
+            
+        
+    
+
+    
+    
+    
+        
+            
+        
+    
+
+    
+        
+            
+        
+    
+
+    
+    
+
+        
+    
+
+    
+
+        
+            
+        
+
+        
+    
+
+    
+
+
diff --git a/lib/compile/jar/twitter4j-core-2.1.7.jar b/lib/compile/jar/twitter4j-core-2.1.7.jar
new file mode 100644
index 0000000..16ea2ab
Binary files /dev/null and b/lib/compile/jar/twitter4j-core-2.1.7.jar differ
diff --git a/lib/runtime/jar/twitter4j-core-2.1.7.jar b/lib/runtime/jar/twitter4j-core-2.1.7.jar
new file mode 100644
index 0000000..16ea2ab
Binary files /dev/null and b/lib/runtime/jar/twitter4j-core-2.1.7.jar differ
diff --git a/project.properties b/project.properties
new file mode 100644
index 0000000..ed95588
--- /dev/null
+++ b/project.properties
@@ -0,0 +1,6 @@
+#Fri, 05 Nov 2010 18:08:47 -0500
+lib.local=true
+name=groovy-twitter-cli
+version=0.1
+build.number=14
+nailgun.classpath.dir=C\:/Documents and Settings/jbernard/My Documents/ng-classpath
diff --git a/src/com/jdbernard/twitter/TwitterCLI.groovy b/src/com/jdbernard/twitter/TwitterCLI.groovy
new file mode 100644
index 0000000..40ef947
--- /dev/null
+++ b/src/com/jdbernard/twitter/TwitterCLI.groovy
@@ -0,0 +1,89 @@
+package com.jdbernard.twitter
+
+import twitter4j.Twitter
+import twitter4j.TwitterFactory
+import twitter4j.conf.Configuration
+import twitter4j.conf.PropertyConfiguration
+
+public class TwitterCLI {
+
+    static def twitter
+
+    public static void main(String[] args) {
+        if (args.length < 1) printUsage()
+
+        Configuration conf
+        File propFile = new File(System.getProperty("user.home"), ".groovy-twitter-cli-rc")
+
+        propFile.withInputStream { is -> conf = new PropertyConfiguration(is) }
+
+        twitter = (new TwitterFactory(conf)).getInstance()
+
+        args = args as List
+
+        switch (args[0].toLowerCase()) {
+            case ~/t.*/: timeline(args.tail()); break
+            case ~/p.*/: post(args.tail()); break 
+
+            default:
+                printUsage()
+        }
+    }
+
+    void setColor(boolean bright, int code) {
+        print "\u001b[${bright?'1':'0'};${code}m"
+    }
+
+    void resetColor() { print "\u001b[m" }
+
+    void colorPrint(def message, boolean bright, int color) {
+        setColor(bright, color)
+        print message
+        resetColor()
+    }
+
+    void colorPrintln(def message, boolean bright, int color) {
+        setColor(bright, color)
+        println message
+        resetColor()
+    }
+
+    void timeline(List args) {
+
+        // default to showing my friends timeline
+        if (args.size() == 0) args = ["friends"]
+
+        while (args.size() > 0) {
+            def option = args.pop()
+            switch (option) {
+                // friends
+                case ~/f.*/: printTimeline(twitter.friendsTimeline); break
+                // mine
+                case ~/m.*/: printTimeline(twitter.userTimeline); break
+                // user
+                case ~/u.*/:
+                    if (args.size() == 0)
+                        colorPrintln("No user specificied.", true, 31)
+                    else printTimeline(twitter.getUserTimeline(args.pop()))
+                    break;
+                default:
+                    colorPrint("Unknown timeline: ", true, 31)
+                    colorPrintln(option, true, 33)
+                    break;
+            }
+        }
+    }
+
+    void printTimeline(def timeline) {
+        timeline.each { status ->
+            colorPrint(status.user.screenName, true, 34)
+            print ": "
+            println status.text
+            println ""
+        }
+    }
+
+    void printUsage() {
+        // TODO
+    }
+}