diff --git a/cmd/ipfs/init.go b/cmd/ipfs/init.go
index 6bb98f9e41b471fa8f46cdd5966f8a6c5d37af52..d9981304cba06b5118c1f22a52f26e4822629ebd 100644
--- a/cmd/ipfs/init.go
+++ b/cmd/ipfs/init.go
@@ -35,13 +35,13 @@ at ~/.ipfs. To change the repo location, set the $IPFS_PATH environment variable
 
 	Options: []cmds.Option{
 		cmds.IntOption("bits", "b", fmt.Sprintf("Number of bits to use in the generated RSA private key (defaults to %d)", nBitsForKeypairDefault)),
-		cmds.BoolOption("force", "f", "Overwrite existing config (if it exists)"),
-		cmds.BoolOption("empty-repo", "e", "Don't add and pin help files to the local storage"),
+		cmds.BoolOption("force", "f", "Overwrite existing config (if it exists)."),
+		cmds.BoolOption("empty-repo", "e", "Don't add and pin help files to the local storage."),
 
 		// TODO need to decide whether to expose the override as a file or a
 		// directory. That is: should we allow the user to also specify the
 		// name of the file?
-		// TODO cmds.StringOption("event-logs", "l", "Location for machine-readable event logs"),
+		// TODO cmds.StringOption("event-logs", "l", "Location for machine-readable event logs."),
 	},
 	PreRun: func(req cmds.Request) error {
 		daemonLocked, err := fsrepo.LockedByOtherProcess(req.InvocContext().ConfigRoot)
diff --git a/core/commands/add.go b/core/commands/add.go
index 73b78c4947e2aae57a0f2bd3b09f30fa13a9ae7c..5d73d9d04e4e7ea2736e7e497d5c04045ce90a8d 100644
--- a/core/commands/add.go
+++ b/core/commands/add.go
@@ -39,7 +39,7 @@ MerkleDAG.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.FileArg("path", true, true, "The path to a file to be added to IPFS").EnableRecursive().EnableStdin(),
+		cmds.FileArg("path", true, true, "The path to a file to be added to IPFS.").EnableRecursive().EnableStdin(),
 	},
 	Options: []cmds.Option{
 		cmds.OptionRecursivePath, // a builtin option that allows recursive paths (-r, --recursive)
diff --git a/core/commands/block.go b/core/commands/block.go
index 33d8a7bbbeef61131a72cf85040e121fdfb400ff..214af0c212d7433ac593bbb84a2fdab0ca883d37 100644
--- a/core/commands/block.go
+++ b/core/commands/block.go
@@ -55,7 +55,7 @@ on raw ipfs blocks. It outputs the following to stdout:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "The base58 multihash of an existing block to get").EnableStdin(),
+		cmds.StringArg("key", true, false, "The base58 multihash of an existing block to get.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		b, err := getBlockForKey(req, req.Arguments()[0])
@@ -88,7 +88,7 @@ It outputs to stdout, and <key> is a base58 encoded multihash.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "The base58 multihash of an existing block to get").EnableStdin(),
+		cmds.StringArg("key", true, false, "The base58 multihash of an existing block to get.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		b, err := getBlockForKey(req, req.Arguments()[0])
@@ -111,7 +111,7 @@ It reads from stdin, and <key> is a base58 encoded multihash.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.FileArg("data", true, false, "The data to be stored as an IPFS block").EnableStdin(),
+		cmds.FileArg("data", true, false, "The data to be stored as an IPFS block.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/bootstrap.go b/core/commands/bootstrap.go
index d7f5494ba107b5452d9f6f9060578ce0f2235933..9b23122f55f763624a5fd312f1700ef57a8d354e 100644
--- a/core/commands/bootstrap.go
+++ b/core/commands/bootstrap.go
@@ -56,7 +56,7 @@ in the bootstrap list).
 	},
 
 	Options: []cmds.Option{
-		cmds.BoolOption("default", "add default bootstrap nodes"),
+		cmds.BoolOption("default", "Add default bootstrap nodes."),
 	},
 
 	Run: func(req cmds.Request, res cmds.Response) {
diff --git a/core/commands/cat.go b/core/commands/cat.go
index 0769423e9c65ebfc85868c85b294973e0bcc3eba..e00cccd79d11541dcb069be8f92c84a8e06a4e41 100644
--- a/core/commands/cat.go
+++ b/core/commands/cat.go
@@ -23,7 +23,7 @@ it contains.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to be outputted").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to be outputted.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
diff --git a/core/commands/config.go b/core/commands/config.go
index a19762cef30f97769d1626c5aa381c1b2f00f788..6216909bb545de301f3a2b565ba3f6393c361378 100644
--- a/core/commands/config.go
+++ b/core/commands/config.go
@@ -54,12 +54,12 @@ Set the value of the 'datastore.path' key:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "The key of the config entry (e.g. \"Addresses.API\")"),
-		cmds.StringArg("value", false, false, "The value to set the config entry to"),
+		cmds.StringArg("key", true, false, "The key of the config entry (e.g. \"Addresses.API\")."),
+		cmds.StringArg("value", false, false, "The value to set the config entry to."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("bool", "Set a boolean value"),
-		cmds.BoolOption("json", "Parse stringified JSON"),
+		cmds.BoolOption("bool", "Set a boolean value."),
+		cmds.BoolOption("json", "Parse stringified JSON."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		args := req.Arguments()
@@ -189,7 +189,7 @@ can't be undone.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.FileArg("file", true, false, "The file to use as the new config"),
+		cmds.FileArg("file", true, false, "The file to use as the new config."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		r, err := fsrepo.Open(req.InvocContext().ConfigRoot)
diff --git a/core/commands/dht.go b/core/commands/dht.go
index 7af5bc31afd3749a5a96885282fdbc8584840a4e..016ec054a719d1d58f89788475e0661339ce930f 100644
--- a/core/commands/dht.go
+++ b/core/commands/dht.go
@@ -40,10 +40,10 @@ var queryDhtCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("peerID", true, true, "The peerID to run the query against"),
+		cmds.StringArg("peerID", true, true, "The peerID to run the query against."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("verbose", "v", "Write extra information"),
+		cmds.BoolOption("verbose", "v", "Write extra information."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -126,10 +126,10 @@ FindProviders will return a list of peers who are able to provide the value requ
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, true, "The key to find providers for"),
+		cmds.StringArg("key", true, true, "The key to find providers for."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("verbose", "v", "Write extra information"),
+		cmds.BoolOption("verbose", "v", "Write extra information."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -227,7 +227,7 @@ var findPeerDhtCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("peerID", true, true, "The peer to search for"),
+		cmds.StringArg("peerID", true, true, "The peer to search for."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -324,10 +324,10 @@ GetValue will return the value stored in the dht at the given key.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, true, "The key to find a value for"),
+		cmds.StringArg("key", true, true, "The key to find a value for."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("verbose", "v", "Write extra information"),
+		cmds.BoolOption("verbose", "v", "Write extra information."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -427,11 +427,11 @@ PutValue will store the given key value pair in the dht.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "The key to store the value at"),
-		cmds.StringArg("value", true, false, "The value to store").EnableStdin(),
+		cmds.StringArg("key", true, false, "The key to store the value at."),
+		cmds.StringArg("value", true, false, "The value to store.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("verbose", "v", "Write extra information"),
+		cmds.BoolOption("verbose", "v", "Write extra information."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/diag.go b/core/commands/diag.go
index 4d62b7dacfb8169e04f8c9ddc8dab95832a5c29b..9793524a6e99ef3dfac0778a2117bd7b2911760b 100644
--- a/core/commands/diag.go
+++ b/core/commands/diag.go
@@ -86,7 +86,7 @@ that consume the dot format to generate graphs of the network.
 	},
 
 	Options: []cmds.Option{
-		cmds.StringOption("vis", "output vis. one of: "+strings.Join(visFmts, ", ")),
+		cmds.StringOption("vis", "Output vis. one of: "+strings.Join(visFmts, ", ")),
 	},
 
 	Run: func(req cmds.Request, res cmds.Response) {
diff --git a/core/commands/dns.go b/core/commands/dns.go
index ee10807c80a3c6f85658f977d189df0672a37724..2cbdccd40c7807ac96a4c60bb1f8a5f8f21a6981 100644
--- a/core/commands/dns.go
+++ b/core/commands/dns.go
@@ -50,7 +50,7 @@ The resolver will give:
 		cmds.StringArg("domain-name", true, false, "The domain-name name to resolve.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("recursive", "r", "Resolve until the result is not a DNS link"),
+		cmds.BoolOption("recursive", "r", "Resolve until the result is not a DNS link."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 
diff --git a/core/commands/external.go b/core/commands/external.go
index 20b384a967a2b42ff8ce67932a534ef42ce63f90..c49fc13c9064f53e027dc15e15afdf6dbe552742 100644
--- a/core/commands/external.go
+++ b/core/commands/external.go
@@ -14,7 +14,7 @@ import (
 func ExternalBinary() *cmds.Command {
 	return &cmds.Command{
 		Arguments: []cmds.Argument{
-			cmds.StringArg("args", false, true, "arguments for subcommand"),
+			cmds.StringArg("args", false, true, "Arguments for subcommand."),
 		},
 		External: true,
 		Run: func(req cmds.Request, res cmds.Response) {
diff --git a/core/commands/files/files.go b/core/commands/files/files.go
index a078f7e3cb4316db8432d1b5eb3bfa52168989d1..d03d5e36fe8c9c58a929867d5ed6e49bd76534d1 100644
--- a/core/commands/files/files.go
+++ b/core/commands/files/files.go
@@ -30,7 +30,7 @@ Files is an API for manipulating ipfs objects as if they were a unix filesystem.
 `,
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("f", "flush", "flush target and ancestors after write (default: true)"),
+		cmds.BoolOption("f", "flush", "Flush target and ancestors after write (default: true)."),
 	},
 	Subcommands: map[string]*cmds.Command{
 		"read":  FilesReadCmd,
@@ -50,7 +50,7 @@ var FilesStatCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "path to node to stat"),
+		cmds.StringArg("path", true, false, "Path to node to stat."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
@@ -140,8 +140,8 @@ var FilesCpCmd = &cmds.Command{
 		Tagline: "Copy files into mfs.",
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("source", true, false, "source object to copy"),
-		cmds.StringArg("dest", true, false, "destination to copy object to"),
+		cmds.StringArg("source", true, false, "Source object to copy."),
+		cmds.StringArg("dest", true, false, "Destination to copy object to."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
@@ -228,10 +228,10 @@ Examples:
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "path to show listing for"),
+		cmds.StringArg("path", true, false, "Path to show listing for."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("l", "use long listing format"),
+		cmds.BoolOption("l", "Use long listing format."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		path, err := checkPath(req.Arguments()[0])
@@ -323,11 +323,11 @@ Examples:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "path to file to be read"),
+		cmds.StringArg("path", true, false, "Path to file to be read."),
 	},
 	Options: []cmds.Option{
-		cmds.IntOption("o", "offset", "offset to read from"),
-		cmds.IntOption("n", "count", "maximum number of bytes to read"),
+		cmds.IntOption("o", "offset", "Offset to read from."),
+		cmds.IntOption("n", "count", "Maximum number of bytes to read."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -412,8 +412,8 @@ Example:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("source", true, false, "source file to move"),
-		cmds.StringArg("dest", true, false, "target path for file to be moved to"),
+		cmds.StringArg("source", true, false, "Source file to move."),
+		cmds.StringArg("dest", true, false, "Target path for file to be moved to."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -468,14 +468,14 @@ Warning:
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "path to write to"),
-		cmds.FileArg("data", true, false, "data to write").EnableStdin(),
+		cmds.StringArg("path", true, false, "Path to write to."),
+		cmds.FileArg("data", true, false, "Data to write.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.IntOption("o", "offset", "offset to write to"),
-		cmds.BoolOption("e", "create", "create the file if it does not exist"),
-		cmds.BoolOption("t", "truncate", "truncate the file before writing"),
-		cmds.IntOption("n", "count", "maximum number of bytes to read"),
+		cmds.IntOption("o", "offset", "Offset to write to."),
+		cmds.BoolOption("e", "create", "Create the file if it does not exist."),
+		cmds.BoolOption("t", "truncate", "Truncate the file before writing."),
+		cmds.IntOption("n", "count", "Maximum number of bytes to read."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		path, err := checkPath(req.Arguments()[0])
@@ -580,10 +580,10 @@ Examples:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "path to dir to make"),
+		cmds.StringArg("path", true, false, "Path to dir to make."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("p", "parents", "no error if existing, make parent directories as needed"),
+		cmds.BoolOption("p", "parents", "No error if existing, make parent directories as needed."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -629,10 +629,10 @@ remove files or directories
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, true, "file to remove"),
+		cmds.StringArg("path", true, true, "File to remove."),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("r", "recursive", "recursively remove directories"),
+		cmds.BoolOption("r", "recursive", "Recursively remove directories."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
diff --git a/core/commands/get.go b/core/commands/get.go
index f9003ec0e4445373a6e50d84c0b7e38b593ea996..e133a5f9c912b5ac0abc2d173c9491c69a371889 100644
--- a/core/commands/get.go
+++ b/core/commands/get.go
@@ -37,13 +37,13 @@ may also specify the level of compression by specifying '-l=<1-9>'.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, false, "The path to the IPFS object(s) to be outputted").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, false, "The path to the IPFS object(s) to be outputted.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("output", "o", "The path where output should be stored"),
-		cmds.BoolOption("archive", "a", "Output a TAR archive"),
-		cmds.BoolOption("compress", "C", "Compress the output with GZIP compression"),
-		cmds.IntOption("compression-level", "l", "The level of compression (1-9)"),
+		cmds.StringOption("output", "o", "The path where output should be stored."),
+		cmds.BoolOption("archive", "a", "Output a TAR archive."),
+		cmds.BoolOption("compress", "C", "Compress the output with GZIP compression."),
+		cmds.IntOption("compression-level", "l", "The level of compression (1-9)."),
 	},
 	PreRun: func(req cmds.Request) error {
 		_, err := getCompressOptions(req)
diff --git a/core/commands/id.go b/core/commands/id.go
index b492bf80b569ff6cb381b332ebf5f2adc342780d..82e2448d15d01de6cb0e327bd0f5f9a7fbd7e842 100644
--- a/core/commands/id.go
+++ b/core/commands/id.go
@@ -50,10 +50,10 @@ ipfs id supports the format option for output with the following keys:
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("peerid", false, false, "peer.ID of node to look up").EnableStdin(),
+		cmds.StringArg("peerid", false, false, "Peer.ID of node to look up.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("format", "f", "optional output format"),
+		cmds.StringOption("format", "f", "Optional output format."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
diff --git a/core/commands/ipns.go b/core/commands/ipns.go
index 30a04cba998e4e5a3c1ed42fde0a2e170b6397b7..a542c59b62fc9913718561f93e7b4bfa42747939 100644
--- a/core/commands/ipns.go
+++ b/core/commands/ipns.go
@@ -44,8 +44,8 @@ Resolve the value of another name:
 		cmds.StringArg("name", false, false, "The IPNS name to resolve. Defaults to your node's peerID.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("recursive", "r", "Resolve until the result is not an IPNS name"),
-		cmds.BoolOption("nocache", "n", "Do not used cached entries"),
+		cmds.BoolOption("recursive", "r", "Resolve until the result is not an IPNS name."),
+		cmds.BoolOption("nocache", "n", "Do not used cached entries."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 
diff --git a/core/commands/log.go b/core/commands/log.go
index c543a5bba515c79ac26ec78f7284635cfcb23161..ead2d38f51c41af87034a16f224cc710cb02b112 100644
--- a/core/commands/log.go
+++ b/core/commands/log.go
@@ -42,7 +42,7 @@ output of a running daemon.
 		// TODO use a different keyword for 'all' because all can theoretically
 		// clash with a subsystem name
 		cmds.StringArg("subsystem", true, false, fmt.Sprintf("the subsystem logging identifier. Use '%s' for all subsystems.", logAllKeyword)),
-		cmds.StringArg("level", true, false, "one of: debug, info, warning, error, fatal, panic"),
+		cmds.StringArg("level", true, false, "One of: debug, info, warning, error, fatal, panic."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 
diff --git a/core/commands/ls.go b/core/commands/ls.go
index 26a23be787df0b7795c29419ebb48176fff6f0d5..64ec937ac013d670fba86bfb3199a959885cae10 100644
--- a/core/commands/ls.go
+++ b/core/commands/ls.go
@@ -41,10 +41,10 @@ it contains, with the following format:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("headers", "v", "Print table headers (Hash, Name, Size)"),
+		cmds.BoolOption("headers", "v", "Print table headers (Hash, Name, Size)."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
diff --git a/core/commands/mount_unix.go b/core/commands/mount_unix.go
index 3b73bb8352ca69faba7d6772f3153d6a7e51c1ab..3be070560cf84363b70affb3e0a62dc998729eed 100644
--- a/core/commands/mount_unix.go
+++ b/core/commands/mount_unix.go
@@ -93,8 +93,8 @@ baz
 `,
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("ipfs-path", "f", "The path where IPFS should be mounted"),
-		cmds.StringOption("ipns-path", "n", "The path where IPNS should be mounted"),
+		cmds.StringOption("ipfs-path", "f", "The path where IPFS should be mounted."),
+		cmds.StringOption("ipns-path", "n", "The path where IPNS should be mounted."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		cfg, err := req.InvocContext().GetConfig()
diff --git a/core/commands/object/object.go b/core/commands/object/object.go
index 9cd71008a55ce13f56c25ad80ed27b341c18e3e8..0827e06c695608bd8b78f136a5522588bdd88af3 100644
--- a/core/commands/object/object.go
+++ b/core/commands/object/object.go
@@ -87,7 +87,7 @@ output is the raw data of the object.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format").EnableStdin(),
+		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -117,7 +117,7 @@ multihash.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format").EnableStdin(),
+		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -176,7 +176,7 @@ This command outputs data in the following encodings:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "Key of the object to retrieve (in base58-encoded multihash format)").EnableStdin(),
+		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -242,7 +242,7 @@ var ObjectStatCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("key", true, false, "Key of the object to retrieve (in base58-encoded multihash format)").EnableStdin(),
+		cmds.StringArg("key", true, false, "Key of the object to retrieve, in base58-encoded multihash format.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -326,10 +326,10 @@ and then run
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.FileArg("data", true, false, "Data to be stored as a DAG object").EnableStdin(),
+		cmds.FileArg("data", true, false, "Data to be stored as a DAG object.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("inputenc", "Encoding type of input data, either \"protobuf\" or \"json\""),
+		cmds.StringOption("inputenc", "Encoding type of input data, either \"protobuf\" or \"json\"."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -391,7 +391,7 @@ Available templates:
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("template", false, false, "optional template to use"),
+		cmds.StringArg("template", false, false, "Optional template to use."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/object/patch.go b/core/commands/object/patch.go
index 51565bc85ca1b67076f9021f78b3fc27d5145a66..2b5741bb28c5527b186b23638f64732f3dc288da 100644
--- a/core/commands/object/patch.go
+++ b/core/commands/object/patch.go
@@ -57,8 +57,8 @@ the limit will not be respected by the network.
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("root", true, false, "the hash of the node to modify"),
-		cmds.FileArg("data", true, false, "data to append").EnableStdin(),
+		cmds.StringArg("root", true, false, "The hash of the node to modify."),
+		cmds.FileArg("data", true, false, "Data to append.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
@@ -119,8 +119,8 @@ EXAMPLE:
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("root", true, false, "the hash of the node to modify"),
-		cmds.FileArg("data", true, false, "data fill with").EnableStdin(),
+		cmds.StringArg("root", true, false, "The hash of the node to modify."),
+		cmds.FileArg("data", true, false, "Data fill with.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
@@ -177,8 +177,8 @@ removes a link by the given name from root.
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("root", true, false, "the hash of the node to modify"),
-		cmds.StringArg("link", true, false, "name of the link to remove"),
+		cmds.StringArg("root", true, false, "The hash of the node to modify."),
+		cmds.StringArg("link", true, false, "Name of the link to remove."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
@@ -246,12 +246,12 @@ a file containing 'bar', and returns the hash of the new object.
 `,
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("p", "create", "create intermediary nodes"),
+		cmds.BoolOption("p", "create", "Create intermediary nodes."),
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("root", true, false, "the hash of the node to modify"),
-		cmds.StringArg("name", true, false, "name of link to create"),
-		cmds.StringArg("ref", true, false, "ipfs object to add link to"),
+		cmds.StringArg("root", true, false, "The hash of the node to modify."),
+		cmds.StringArg("name", true, false, "Name of link to create."),
+		cmds.StringArg("ref", true, false, "IPFS object to add link to."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
diff --git a/core/commands/pin.go b/core/commands/pin.go
index 3ad5920e6a0fb67045773100831d0fc49390197a..e175f1e030b28f1a1190bcf1129b6fe8678ce51b 100644
--- a/core/commands/pin.go
+++ b/core/commands/pin.go
@@ -41,10 +41,10 @@ on disk.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "Path to object(s) to be pinned").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "Path to object(s) to be pinned.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("recursive", "r", "Recursively pin the object linked to by the specified object(s)"),
+		cmds.BoolOption("recursive", "r", "Recursively pin the object linked to by the specified object(s)."),
 	},
 	Type: PinOutput{},
 	Run: func(req cmds.Request, res cmds.Response) {
@@ -109,10 +109,10 @@ collected if needed. (By default, recursively. Use -r=false for direct pins)
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "Path to object(s) to be unpinned").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "Path to object(s) to be unpinned.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("recursive", "r", "Recursively unpin the object linked to by the specified object(s)"),
+		cmds.BoolOption("recursive", "r", "Recursively unpin the object linked to by the specified object(s)."),
 	},
 	Type: PinOutput{},
 	Run: func(req cmds.Request, res cmds.Response) {
@@ -194,12 +194,12 @@ Example:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", false, true, "Path to object(s) to be listed"),
+		cmds.StringArg("ipfs-path", false, true, "Path to object(s) to be listed."),
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("type", "t", "The type of pinned keys to list. Can be \"direct\", \"indirect\", \"recursive\", or \"all\". Defaults to \"recursive\""),
-		cmds.BoolOption("count", "n", "Show refcount when listing indirect pins"),
-		cmds.BoolOption("quiet", "q", "Write just hashes of objects"),
+		cmds.StringOption("type", "t", "The type of pinned keys to list. Can be \"direct\", \"indirect\", \"recursive\", or \"all\". Defaults to \"recursive\"."),
+		cmds.BoolOption("count", "n", "Show refcount when listing indirect pins."),
+		cmds.BoolOption("quiet", "q", "Write just hashes of objects."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/ping.go b/core/commands/ping.go
index e2ab9b9e21bb07629e6f946838b75edd36dd3099..4a91fda294d12d114da5825b5937ee3f4e7762d3 100644
--- a/core/commands/ping.go
+++ b/core/commands/ping.go
@@ -38,10 +38,10 @@ trip latency information.
 		`,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("peer ID", true, true, "ID of peer to be pinged").EnableStdin(),
+		cmds.StringArg("peer ID", true, true, "ID of peer to be pinged.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.IntOption("count", "n", "number of ping messages to send"),
+		cmds.IntOption("count", "n", "Number of ping messages to send."),
 	},
 	Marshalers: cmds.MarshalerMap{
 		cmds.Text: func(res cmds.Response) (io.Reader, error) {
diff --git a/core/commands/publish.go b/core/commands/publish.go
index b00a577853adbe0f1c090079599fe6e0a5ab8fff..85037dc9bd20e06adbcd399088110a8bbb6aef30 100644
--- a/core/commands/publish.go
+++ b/core/commands/publish.go
@@ -47,12 +47,12 @@ Publish an <ipfs-path> to another public key (not implemented):
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, false, "IPFS path of the obejct to be published").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, false, "IPFS path of the obejct to be published.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("resolve", "resolve given path before publishing (default=true)"),
-		cmds.StringOption("lifetime", "t", "time duration that the record will be valid for (default: 24hrs)"),
-		cmds.StringOption("ttl", "time duration this record should be cached for (caution: experimental)"),
+		cmds.BoolOption("resolve", "Resolve given path before publishing (default=true)."),
+		cmds.StringOption("lifetime", "t", "Time duration that the record will be valid for (default: 24hrs)."),
+		cmds.StringOption("ttl", "Time duration this record should be cached for (caution: experimental)."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		log.Debug("Begin Publish")
diff --git a/core/commands/refs.go b/core/commands/refs.go
index c68e5c8e474847317ddab8c94ef088a0f191b260..384c28706955acc32122bb5cfec3bd6386028065 100644
--- a/core/commands/refs.go
+++ b/core/commands/refs.go
@@ -47,13 +47,13 @@ Note: list all refs recursively with -r.
 		"local": RefsLocalCmd,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "Path to the object(s) to list refs from").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "Path to the object(s) to list refs from.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("format", "Emit edges with given format. tokens: <src> <dst> <linkname>"),
-		cmds.BoolOption("edges", "e", "Emit edge format: `<from> -> <to>`"),
-		cmds.BoolOption("unique", "u", "Omit duplicate refs from output"),
-		cmds.BoolOption("recursive", "r", "Recursively list links of child nodes"),
+		cmds.StringOption("format", "Emit edges with given format. tokens: <src> <dst> <linkname>."),
+		cmds.BoolOption("edges", "e", "Emit edge format: `<from> -> <to>`."),
+		cmds.BoolOption("unique", "u", "Omit duplicate refs from output."),
+		cmds.BoolOption("recursive", "r", "Recursively list links of child nodes."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		ctx := req.Context()
diff --git a/core/commands/repo.go b/core/commands/repo.go
index 08c5371edcd070c409707996e9a00094d321ce5b..7014368a6d2856ed3e03864f4f640b6ce4daea32 100644
--- a/core/commands/repo.go
+++ b/core/commands/repo.go
@@ -34,7 +34,7 @@ order to reclaim hard disk space.
 	},
 
 	Options: []cmds.Option{
-		cmds.BoolOption("quiet", "q", "Write minimal output"),
+		cmds.BoolOption("quiet", "q", "Write minimal output."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/resolve.go b/core/commands/resolve.go
index 5cd845c211be848a2361b51ffcf43918d4debce0..430b9008b54274bc3987d9c8a46320d487f09f27 100644
--- a/core/commands/resolve.go
+++ b/core/commands/resolve.go
@@ -58,7 +58,7 @@ Resolve the value of an IPFS DAG path:
 		cmds.StringArg("name", true, false, "The name to resolve.").EnableStdin(),
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("recursive", "r", "Resolve until the result is an IPFS name"),
+		cmds.BoolOption("recursive", "r", "Resolve until the result is an IPFS name."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 
diff --git a/core/commands/root.go b/core/commands/root.go
index 09e8c951a3bb5b3ad89cf583352b63f9795a8b86..32b9c88925c6ae55ae2d80177e5d82c82a468c5e 100644
--- a/core/commands/root.go
+++ b/core/commands/root.go
@@ -79,11 +79,11 @@ at ~/.ipfs. To change the repo location, set the $IPFS_PATH environment variable
 `,
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("config", "c", "Path to the configuration file to use"),
-		cmds.BoolOption("debug", "D", "Operate in debug mode"),
-		cmds.BoolOption("help", "Show the full command help text"),
-		cmds.BoolOption("h", "Show a short version of the command help text"),
-		cmds.BoolOption("local", "L", "Run the command locally, instead of using the daemon"),
+		cmds.StringOption("config", "c", "Path to the configuration file to use."),
+		cmds.BoolOption("debug", "D", "Operate in debug mode."),
+		cmds.BoolOption("help", "Show the full command help text."),
+		cmds.BoolOption("h", "Show a short version of the command help text."),
+		cmds.BoolOption("local", "L", "Run the command locally, instead of using the daemon."),
 		cmds.StringOption(ApiOption, "Use a specific API instance (defaults to /ip4/127.0.0.1/tcp/5001)"),
 	},
 }
diff --git a/core/commands/stat.go b/core/commands/stat.go
index 4e2f033d38dc03238d79c867c878f6489a81b9e5..277e3b88ce89bd59ef5afc42e3d37d9ed7371c8e 100644
--- a/core/commands/stat.go
+++ b/core/commands/stat.go
@@ -33,10 +33,10 @@ var statBwCmd = &cmds.Command{
 		ShortDescription: ``,
 	},
 	Options: []cmds.Option{
-		cmds.StringOption("peer", "p", "specify a peer to print bandwidth for"),
-		cmds.StringOption("proto", "t", "specify a protocol to print bandwidth for"),
-		cmds.BoolOption("poll", "print bandwidth at an interval"),
-		cmds.StringOption("interval", "i", "time interval to wait between updating output"),
+		cmds.StringOption("peer", "p", "Specify a peer to print bandwidth for."),
+		cmds.StringOption("proto", "t", "Specify a protocol to print bandwidth for."),
+		cmds.BoolOption("poll", "Print bandwidth at an interval."),
+		cmds.StringOption("interval", "i", "Time interval to wait between updating output."),
 	},
 
 	Run: func(req cmds.Request, res cmds.Response) {
diff --git a/core/commands/swarm.go b/core/commands/swarm.go
index f5a6fe16cf314e83c9dcdc43416770c4bec3d076..9114915d5a240610e6fbee7487b81dbe76082310 100644
--- a/core/commands/swarm.go
+++ b/core/commands/swarm.go
@@ -159,7 +159,7 @@ ipfs swarm addrs local lists all local addresses the node is listening on.
 `,
 	},
 	Options: []cmds.Option{
-		cmds.BoolOption("id", "Show peer ID in addresses"),
+		cmds.BoolOption("id", "Show peer ID in addresses."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 
@@ -207,7 +207,7 @@ ipfs swarm connect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQAwe3
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("address", true, true, "address of peer to connect to").EnableStdin(),
+		cmds.StringArg("address", true, true, "Address of peer to connect to.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		ctx := req.Context()
@@ -262,7 +262,7 @@ ipfs swarm disconnect /ip4/104.131.131.82/tcp/4001/ipfs/QmaCpDMGvV2BGHeYERUEnRQA
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("address", true, true, "address of peer to connect to").EnableStdin(),
+		cmds.StringArg("address", true, true, "Address of peer to connect to.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -429,7 +429,7 @@ add your filters to the ipfs config file.
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("address", true, true, "multiaddr to filter").EnableStdin(),
+		cmds.StringArg("address", true, true, "Multiaddr to filter.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
@@ -471,7 +471,7 @@ remove your filters from the ipfs config file.
 `,
 	},
 	Arguments: []cmds.Argument{
-		cmds.StringArg("address", true, true, "multiaddr filter to remove").EnableStdin(),
+		cmds.StringArg("address", true, true, "Multiaddr filter to remove.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		n, err := req.InvocContext().GetNode()
diff --git a/core/commands/tar.go b/core/commands/tar.go
index 0c74adcc98e9d09c3b892ad768c235f7da83e179..ada15ec21d6c27814f33f4fad1a50fe0722df798 100644
--- a/core/commands/tar.go
+++ b/core/commands/tar.go
@@ -31,7 +31,7 @@ var tarAddCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.FileArg("file", true, false, "tar file to add").EnableStdin(),
+		cmds.FileArg("file", true, false, "Tar file to add.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
@@ -82,7 +82,7 @@ var tarCatCmd = &cmds.Command{
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("path", true, false, "ipfs path of archive to export").EnableStdin(),
+		cmds.StringArg("path", true, false, "Ipfs path of archive to export.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		nd, err := req.InvocContext().GetNode()
diff --git a/core/commands/tour.go b/core/commands/tour.go
index 2a9a058748c194c214fd1a4d8b14dd9157b785f0..e82bf1b34bac55e6be7ed24a83efb1c60d9c5fa9 100644
--- a/core/commands/tour.go
+++ b/core/commands/tour.go
@@ -25,7 +25,7 @@ IPFS very quickly. To start, run:
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("id", false, false, "The id of the topic you would like to tour"),
+		cmds.StringArg("id", false, false, "The id of the topic you would like to tour."),
 	},
 	Subcommands: map[string]*cmds.Command{
 		"list":    cmdIpfsTourList,
diff --git a/core/commands/unixfs/ls.go b/core/commands/unixfs/ls.go
index 391c02835c05b6ea6bc154a0fb1eaaee053bda41..870f4f0c4cad4897e118eaa4980a0be5cd88b312 100644
--- a/core/commands/unixfs/ls.go
+++ b/core/commands/unixfs/ls.go
@@ -46,7 +46,7 @@ size is the IPFS link size.
 	},
 
 	Arguments: []cmds.Argument{
-		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from").EnableStdin(),
+		cmds.StringArg("ipfs-path", true, true, "The path to the IPFS object(s) to list links from.").EnableStdin(),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		node, err := req.InvocContext().GetNode()
diff --git a/core/commands/version.go b/core/commands/version.go
index 0c454d81b0263f0bb800cf993b4a8bb51a7e5189..c8d3212e2e6d66c68275491e7ea9baf5bde190c4 100644
--- a/core/commands/version.go
+++ b/core/commands/version.go
@@ -23,9 +23,9 @@ var VersionCmd = &cmds.Command{
 	},
 
 	Options: []cmds.Option{
-		cmds.BoolOption("number", "n", "Only show the version number"),
-		cmds.BoolOption("commit", "Show the commit hash"),
-		cmds.BoolOption("repo", "Show repo version"),
+		cmds.BoolOption("number", "n", "Only show the version number."),
+		cmds.BoolOption("commit", "Show the commit hash."),
+		cmds.BoolOption("repo", "Show repo version."),
 	},
 	Run: func(req cmds.Request, res cmds.Response) {
 		res.SetOutput(&VersionOutput{