Commands
A path is owner/name, or just name for your own. Add --json to any
command for structured output.
Anywhere
otisk whoami show the authenticated account
otisk status what the host is running
otisk version what this client is
otisk help the host's own list of commands
otisk repo list repositories you can read
otisk repo show <path> details of one repository
otisk repo create <path> [--public] create one (private by default)
otisk repo rename <path> <new-name> rename, keeping its identity and data
otisk repo transfer <path> <new-owner> move it to another account
otisk repo visibility <path> <public|private>
otisk repo delete <path> --yes delete it and release its data
otisk key list your registered SSH keys
otisk key add [<key>] register a key, or read one from stdin
otisk key remove <fingerprint> revoke a key
otisk clone <path> [directory] clone by owner/name
otisk host [set <host>] show or set the configured host
otisk ui [--repo <path>] [--all] review in a terminal interface
Inside a clone
For changes under review. The repository and remote come from the git remote
pointing at the configured host; --repo and --remote override them.
otisk change hook add a Change-Id to new commits
otisk change push [--branch <branch>] push HEAD for review
otisk change list [--all] open changes, or every change
otisk change show <number> a change and its revisions
otisk change diff <number> [<a> <b>] range-diff two revisions (latest two by default)
otisk change checkout <number> check out the latest revision, to amend it
otisk change land <number> [--revision=<n>]
fast-forward the branch to the latest revision
otisk change abandon <number> close a change without landing it
otisk change comments <number> [--all] comment threads: open ones, or every one
otisk change comment <number> [--file <path> --line <n>] [--revision <n>] [-m <text>]
start a thread; the text may also be piped in
otisk change reply <number> <thread> [-m <text>]
otisk change resolve <number> <thread> mark a thread dealt with
otisk change reopen <number> <thread>
Without the client
Every command is an ssh exec request you can type by hand, and pushing for review is plain git:
ssh git@git.otisk.dev otisk repo list
ssh git@git.otisk.dev otisk change list yuritomanek/notes
git push origin HEAD:refs/for/main
otisk help, run against a host, prints that host's own list — which is the
one that cannot be out of date. A test compares it against this page, so if
they ever disagree, a build fails rather than a reader.