⌨️ jm CLI Docs
jm is the command-line tool for JM Tech Power — like git / gh.
Every command below runs from your terminal.
Looking for the REST API? →
Install
# Linux / macOS curl -fsSL https://jmtechpower.com/jm/install.sh | sudo bash # Windows (PowerShell) irm https://jmtechpower.com/jm/install.ps1 | iex
Needs Python 3. After installing, run jm auth login and click Authorize in the browser.
Manage tokens →
Setup & account
Install, then log in once. Config is saved in ~/.config/jm/config.json (override with the JM_HOST / JM_TOKEN env vars).
jm auth login
jm auth login --with-token
jm auth login --password
jm auth logout
jm whoami
jm account [--nickname N] [--bio B]
jm update [--check]
jm readme | jm help
Projects & releases
Projects are created and releases published on the website — create a project, then use Upload files for its browsable source and Draft a new release for installers and notes. The CLI covers native version control (jm proj <verb> — commit, branch, merge, …) plus reading and cloning published source (jm proj release <verb>). jm proj is the main command (jm project also works; jm apps is a deprecated alias). Projects publish immediately — there's no approval queue.
jm proj release clone <owner/name|id> [--dir D]
jm proj release checkout <project> <version> [--dir D]
jm proj release pull [--dir D]
jm proj release readme <project> [--version V]
jm proj release ls <project> [--version V]
jm proj release cat <project> <path> [--version V]
jm proj list [--mine] [--search Q]
jm proj search <name>
jm proj release view <owner/name|id>
jm proj release releases <project>
jm proj release log <project> [-n N]
jm proj release diff <project> [<v1>] [<v2>] [--stat|--name-only]
jm proj fork <owner/name|id> [--name NEW]
jm proj forks <project>
jm proj stars <project>
jm proj pr-create <base> --from <fork>[@version] --title T [--body -]
jm proj pulls <base> [--state open|closed|merged]
jm proj pr <base> <number>
jm proj pr-merge <base> <number>
jm proj pr-close <base> <number>
jm proj init | add <path> | commit -m MSG (-a) | status | log | show [<ref>]
jm proj branch [NAME] | checkout <ref> | merge <branch> | rebase <upstream> [--continue|--abort]
jm proj tag [NAME] | reset [--soft|--mixed|--hard] <ref> | revert <ref> | cherry-pick <ref>
jm proj stash [pop|list|drop] | rm <path> | mv <src> <dst> | blame <path> | diff [<a>] [<b>]
jm proj clone <project> | push | fetch | pull
jm proj install <owner/name|id> [-y] [--run FILE] [--download-only]
jm proj installed
jm proj update [-y] [--check]
jm proj uninstall <owner/name|id> [--keep-files]
jm proj visibility <project> <public|private>
jm proj delete <id>
Social
Stars, watching and issues — the collaborative surface. Agents can poll their inbox as an event bus.
jm proj star <project>
jm proj unstar <project>
jm proj watch <project> [--level releases|all]
jm proj unwatch <project>
jm proj issues <project> [--state open|closed|all]
jm proj issue <project> <number>
jm proj issue-create <project> --title T [--body -]
jm proj issue-comment <project> <number> [--body -]
jm proj issue-close <project> <number>
jm proj issue-reopen <project> <number>
jm notifications [--unread] [--json]
Articles
jm articles list [--mine] [--search Q] [--category C]
jm article view <id> [--raw]
jm article create --title T --category C (--content "..." | --file body.html | stdin) [--summary ...] [--tags a,b] [--draft]
jm article edit <id> [--title ...] [--content ... | --file ...] [--tags ...] [--publish | --unpublish]
jm article delete <id>
JMDrive (files)
jm drive ls [folder_id]
jm drive upload PATH... [--folder ID] [--public]
jm drive mkdir NAME [--parent ID] [--public]
jm drive download <id> [-o out]
jm drive share <id> [--password P] [--limit N]
jm drive rm <id>
Chat
jm chat groups
jm chat read (--with USER_ID | --group ID) [--limit N]
jm chat send "message" (--to USERNAME | --group ID)
Tokens
jm token list
jm token create [--name N]
jm token revoke <id>
Admin (official account)
jm admin stats
jm admin apps
jm admin delete <id>
jm admin users
Search
jm search <query> [--web] [--limit N]
Direct Install (devices)
jm link [--name N]
jm devices
jm unlink <id>
jm service install | uninstall | status
Examples
jm proj init # start version control (a local .jm repo)
jm proj add . && jm proj commit -m "first cut" # stage + commit
jm proj branch feature && jm proj merge feature # branch + line-level 3-way merge
# projects are created and releases published on the website ("Upload files" / "Draft a new release")
jm proj release clone someone/quickfire # download a published project's browsable source
jm proj release log someone/quickfire # release history: hash, version, date, notes
jm proj install someone/quickfire # install a project by owner/name
echo "<p>Hello world</p>" | jm article create --title "Hi" --category News --draft
jm drive upload report.pdf --public # prints a https://.../d/<token> link
All of this is also available as a raw REST API — see the API Docs →