diff --git a/cmd/ipfs/ipfs.go b/cmd/ipfs/ipfs.go
index 3a99884a91cab330d00f09bcf5bbb39153b3053f..a0d4f40827c490000ab24b1ae54cdaa9bdb98aab 100644
--- a/cmd/ipfs/ipfs.go
+++ b/cmd/ipfs/ipfs.go
@@ -50,6 +50,11 @@ func main() {
 		os.Exit(1)
 	}
 
+	if help, found := options.Option("help"); found && help.(bool) {
+		fmt.Println(cmd.Help)
+		os.Exit(0)
+	}
+
 	if debug, found := options.Option("debug"); found && debug.(bool) {
 		u.Debug = true
 
diff --git a/core/commands/root.go b/core/commands/root.go
index 69d093281db3906134666dcff0fe7fd818fe8086..f1dd03f59837d95dcaeaf53b4775e2c7dcb59ce5 100644
--- a/core/commands/root.go
+++ b/core/commands/root.go
@@ -15,6 +15,7 @@ var Root = &cmds.Command{
 	Options: []cmds.Option{
 		cmds.Option{[]string{"config", "c"}, cmds.String},
 		cmds.Option{[]string{"debug", "D"}, cmds.Bool},
+		cmds.Option{[]string{"help", "h"}, cmds.Bool},
 	},
 	Help: `ipfs - global versioned p2p merkledag file system