{
"name": "charm",
"description": "Do Charm stuff; run without arguments for a TUI or use the sub-commands like a pro",
"subcommands": [
{
"name": "backup-keys",
"description": "Backup your Charm account keys"
},
{
"name": "completion",
"description": "Generate shell completion"
},
{
"name": "crypt",
"description": "Use charm encryption",
"subcommands": [
{
"name": "decrypt",
"description": "Decrypt stdin with your Charm account encryption key"
},
{
"name": "decrypt-lookup",
"description": "Decrypt arg deterministically"
},
{
"name": "encrypt",
"description": "Encrypt stdin with your Charm account encryption key"
},
{
"name": "encrypt-lookup",
"description": "Encrypt arg deterministically"
}
]
},
{
"name": "fs",
"description": "Use the Charm file systems",
"subcommands": [
{
"name": "cat",
"description": "Output the content of the file at path",
"args": [
{
"name": "[charm:]PATH"
}
]
},
{
"name": "cp",
"description": "Copy a file, preface source or destination with \"charm:\" to specify a remote path",
"options": [
{
"names": [
"--recursive",
"-r"
],
"description": "Copy directories recursively"
}
],
"args": [
{
"name": "[charm:]PATH"
},
{
"name": "[charm:]PATH"
}
]
},
{
"name": "ls",
"description": "List file or directory at path",
"args": [
{
"name": "[charm:]PATH"
}
]
},
{
"name": "mv",
"description": "Move a file, preface source or destination with \"charm\" to specify a remote path",
"args": [
{
"name": "[charm:]PATH"
},
{
"name": "[charm:]PATH"
}
]
},
{
"name": "rm",
"description": "Remove file or directory at path",
"args": [
{
"name": "[charm:]PATH"
}
]
},
{
"name": "tree",
"description": "Print a file system tree from path",
"args": [
{
"name": "[charm:]PATH"
}
]
}
]
},
{
"name": "help",
"description": "Help about any command"
},
{
"name": "id",
"description": "Print your Charm ID"
},
{
"name": "import-keys",
"description": "Import previously backed up Charm account keys",
"options": [
{
"names": [
"--force-overwrite",
"-f"
],
"description": "Overwrite if keys exist; don't prompt for input"
}
],
"args": [
{
"name": "BACKUP.tar",
"suggestions": [
"BACKUP.tar"
],
"template": "filepaths"
}
]
},
{
"name": "jwt",
"description": "Print a JWT"
},
{
"name": "keys",
"description": "Browse or print linked SSH keys",
"options": [
{
"names": [
"--randomart",
"-r"
],
"description": "Print SSH 5.1 randomart for each key (the Drunken Bishop algorithm)"
},
{
"names": [
"--simple",
"-s"
],
"description": "Simple, non-interactive output (good for scripts)"
}
]
},
{
"name": "kv",
"description": "Use the Charm key value store",
"subcommands": [
{
"name": "delete",
"description": "Delete a key with an optional @ db",
"args": [
{
"name": "KEY[@DB]"
}
]
},
{
"name": "get",
"description": "Get a value for a key with an optional @ db",
"args": [
{
"name": "KEY[@DB]"
}
]
},
{
"name": "list",
"description": "List all key value pairs with an optional @ db",
"args": [
{
"name": "KEY[@DB]"
}
]
},
{
"name": "reset",
"description": "Delete local db and pull down fresh copy from Charm Cloud",
"args": [
{
"name": "KEY[@DB]"
}
]
},
{
"name": "set",
"description": "Set a value for a key with an optional @ db",
"args": [
{
"name": "KEY[@DB]"
},
{
"name": "VALUE"
}
]
},
{
"name": "sync",
"description": "Sync local db with latest Charm Cloud db",
"args": [
{
"name": "KEY[@DB]"
}
]
}
]
},
{
"name": "link",
"description": "Link multiple machines to your Charm account",
"args": [
{
"name": "code"
}
]
},
{
"name": "name",
"description": "Username stuff",
"args": [
{
"name": "username"
}
]
},
{
"name": "serve",
"description": "Start a self-hosted Charm Cloud server",
"options": [
{
"names": [
"--data-dir"
],
"description": "Directory to store SQLite db, SSH keys and file data",
"takes_arg": true,
"arg": {
"name": "DATA_DIR",
"template": "folders"
}
},
{
"names": [
"--health-port"
],
"description": "Health port to listen on",
"takes_arg": true,
"arg": {
"name": "HEALTH_PORT",
"suggestions": [
"35356"
]
}
},
{
"names": [
"--http-port"
],
"description": "HTTP port to listen on",
"takes_arg": true,
"arg": {
"name": "HTTP_PORT",
"suggestions": [
"35354"
]
}
},
{
"names": [
"--ssh-port"
],
"description": "SSH port to listen on",
"takes_arg": true,
"arg": {
"name": "SSH_PORT",
"suggestions": [
"35353"
]
}
},
{
"names": [
"--stats-port"
],
"description": "Stats port to listen on",
"takes_arg": true,
"arg": {
"name": "STATS_PORT",
"suggestions": [
"35355"
]
}
}
]
}
],
"options": [
{
"names": [
"--help",
"-h"
],
"description": "Help for charm"
},
{
"names": [
"--version",
"-v"
],
"description": "Version for charm"
}
]
}