JJHub CLI Command Reference
The jjhub CLI provides commands for interacting with the JJHub platform. It operates in two modes:
- Local mode: Uses jj-lib directly for offline operations (e.g.,
jjhub change list, jjhub status)
- Remote mode: Communicates with the JJHub API for cloud operations (e.g.,
jjhub repo create, jjhub land create)
Agent-First Usage: All functionality to interact with JJHub is available as a CLI, an Agent Skill, and an MCP server to support seamless agent-first workflows.
Global Flags
| Flag | Description |
|---|
--json [fields] | Output as JSON, optionally with field projection |
--toon [fields] | Output in TOON format (for AI/LLM pipelines) |
Authentication is via JJHUB_TOKEN environment variable or stored credentials from jjhub auth login.
jjhub auth
Manage authentication.
jjhub auth login
Authenticate with JJHub via GitHub OAuth (opens browser).
| Flag | Description |
|---|
--with-token | Read token from stdin instead of opening browser |
--insecure-storage | Store token in plain-text config file (for CI) |
--hostname <host> | Hostname to authenticate with |
jjhub auth logout
Clear saved credentials.
| Flag | Description |
|---|
--hostname <host> | Hostname to log out from |
jjhub auth status
Show current authentication status.
jjhub auth token
Print the stored authentication token to stdout.
| Flag | Description |
|---|
--hostname <host> | Hostname to get token for |
jjhub repo
Manage repositories.
jjhub repo create <name>
Create a new repository.
| Flag | Description |
|---|
-d, --description <text> | Repository description |
--public | Make the repository public |
--private | Make the repository private |
jjhub repo clone <repository> [directory]
Clone a repository. Accepts owner/repo format or a full git URL.
Additional flags after -- are passed through to jj/git.
jjhub repo list
List repositories for the authenticated user.
| Flag | Description |
|---|
-L, --limit <n> | Max items to return (default: 30) |
jjhub repo view
View repository details.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository (defaults to current repo) |
jjhub land
Manage landing requests (JJHub’s replacement for pull requests).
jjhub land create
Create a landing request.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-t, --title <text> | Landing request title |
-b, --body <text> | Landing request body/description |
--target <bookmark> | Target bookmark (default: main) |
--change-id <id> | Explicit change ID(s), can be repeated |
--stack | Include detected stack change IDs |
jjhub land list
List landing requests.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-s, --state <state> | Filter: open, closed, merged, draft, all (default: open) |
-L, --limit <n> | Max items (default: 30) |
jjhub land view <number>
View a landing request by number.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub land review <number>
Review a landing request.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-a, --approve | Approve the landing request |
-r, --request-changes | Request changes |
-c, --comment | Comment-only review |
-b, --body <text> | Review body |
jjhub land merge <number>
Merge (land) a landing request.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub land checks <number>
View CI checks for a landing request.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub issue
Manage issues.
jjhub issue create
Create a new issue.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-t, --title <text> | Issue title |
-b, --body <text> | Issue body |
-a, --assignee <username> | Assignee (can be repeated) |
jjhub issue list
List issues.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-s, --state <state> | Filter: open, closed, all (default: open) |
-L, --limit <n> | Max items (default: 30) |
jjhub issue view <number>
View an issue by number.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub issue close <number>
Close an issue.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-c, --comment <text> | Comment to add when closing |
jjhub change
View changes (local jj-lib operations).
jjhub change list
List recent changes in the working copy.
| Flag | Description |
|---|
--limit <n> | Max changes to show (default: 10) |
jjhub change show <change-id>
Show details for a specific change by Change ID (or prefix).
jjhub change diff [change-id]
Show the diff for a change. Defaults to the working copy if no change ID is given.
jjhub bookmark
Manage bookmarks (jj’s equivalent of branches).
jjhub bookmark list
List bookmarks.
| Flag | Description |
|---|
-r, --remote | Use remote API instead of local jj operations |
-R, --repo <owner/repo> | Repository override |
jjhub bookmark create <name>
Create a bookmark at the current working copy.
| Flag | Description |
|---|
--change-id <id> | Target change ID (required for remote operations) |
-r, --remote | Use remote API |
-R, --repo <owner/repo> | Repository override |
jjhub bookmark delete <name>
Delete a bookmark.
| Flag | Description |
|---|
-r, --remote | Use remote API |
-R, --repo <owner/repo> | Repository override |
jjhub status
Show working copy status (local jj-lib operation). No flags - displays the current change, parent, and modified files.
jjhub workflow
Manage workflows.
jjhub workflow list
List workflows in the repository.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--page <n> | Page number (default: 1) |
--per-page <n> | Results per page (default: 30) |
jjhub workflow run <workflow-id>
Trigger a workflow run.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--ref <ref> | Git ref to run on (default: main) |
jjhub run
View and manage workflow runs.
jjhub run list <workflow-id>
List runs for a workflow.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--page <n> | Page number (default: 1) |
--per-page <n> | Results per page (default: 30) |
jjhub run view <run-id>
View details of a workflow run.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub run watch <run-id>
Watch a workflow run in real-time (polls until completion).
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub run rerun <run-id>
Re-run a workflow.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub agent
Interact with AI agents.
jjhub agent list
List agent sessions for the repository.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--page <n> | Page number (default: 1) |
--per-page <n> | Results per page (default: 30) |
jjhub agent view <session-id>
View an agent session.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--messages | Show messages in the session |
jjhub agent run <prompt>
Start a new agent session with an initial prompt (non-interactive).
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--title <text> | Session title |
jjhub agent chat <session-id> <message>
Post a message to an existing agent session.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub search
Search across the platform.
jjhub search repos <query>
Search repositories.
| Flag | Description |
|---|
-L, --limit <n> | Max items (default: 30) |
jjhub search issues <query>
Search issues.
| Flag | Description |
|---|
-s, --state <state> | Filter: open, closed, all |
-L, --limit <n> | Max items (default: 30) |
jjhub search code <query>
Search code.
| Flag | Description |
|---|
-L, --limit <n> | Max items (default: 30) |
jjhub label
Manage labels.
jjhub label list
List labels for the repository.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub label create [name]
Create a new label.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
--name <name> | Label name (flag form) |
-c, --color <hex> | Hex color without # (default: 0075ca) |
-d, --description <text> | Optional description |
jjhub label delete <name>
Delete a label by name.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-y, --yes | Skip confirmation prompt |
jjhub release
Manage releases.
jjhub release create <tag-name>
Create a new release.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-t, --title <text> | Release title |
-n, --notes <text> | Release notes |
--draft | Mark as draft |
--prerelease | Mark as pre-release |
jjhub release list
List releases.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub secret
Manage repository secrets.
jjhub secret set <name>
Set a secret.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-b, --body <value> | Secret value (required) |
jjhub secret list
List secrets (names only, values are hidden).
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub secret delete <name>
Delete a secret.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub variable
Manage repository variables.
jjhub variable set <name>
Set a variable.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
-b, --body <value> | Variable value (required) |
jjhub variable get <name>
Get a variable value.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub variable list
List variables.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub variable delete <name>
Delete a variable.
| Flag | Description |
|---|
-R, --repo <owner/repo> | Repository |
jjhub ssh-key
Manage SSH keys on your account.
jjhub ssh-key add
Add an SSH public key.
| Flag | Description |
|---|
-t, --title <text> | Human-readable title (required) |
-k, --key <key> | SSH public key string (required) |
jjhub ssh-key list
List SSH keys on your account.
jjhub ssh-key delete <id>
Delete an SSH key by ID.
jjhub config
Get and set CLI configuration.
Valid keys: api_url, git_protocol
jjhub config get <key>
Get a config value.
jjhub config set <key> <value>
Set a config value.
jjhub config list
List all config values.
jjhub beta
Manage closed alpha whitelist and waitlist.
jjhub beta waitlist join
Join the closed alpha waitlist (no authentication required).
| Flag | Description |
|---|
--email <email> | Email address (required) |
--note <text> | Optional note for admins |
--source <tag> | Source tag (default: cli) |
jjhub beta waitlist list
List waitlist entries (admin only).
| Flag | Description |
|---|
--status <status> | Filter: pending, approved, rejected |
--page <n> | Page number (default: 1) |
--per-page <n> | Results per page (default: 50) |
jjhub beta waitlist approve
Approve a waitlist entry (admin only).
| Flag | Description |
|---|
--email <email> | Email to approve (required) |
jjhub beta whitelist add
Add a whitelist entry (admin only).
| Flag | Description |
|---|
--type <type> | Identity type: email, wallet, username |
--value <value> | Identity value |
jjhub beta whitelist list
List whitelist entries (admin only).
jjhub beta whitelist remove
Remove a whitelist entry (admin only).
| Flag | Description |
|---|
--type <type> | Identity type: email, wallet, username |
--value <value> | Identity value |
jjhub api
Make raw API calls to the JJHub API.
jjhub api /repos/username/my-project
jjhub api -X POST /repos -f name=new-repo -f private=true
| Flag | Description |
|---|
-X, --method <method> | HTTP method (default: GET) |
-f, --field <key=value> | Add a request body field (repeatable) |
-H, --header <key:value> | Add a request header (repeatable) |
jjhub completion
Generate shell completions.
jjhub completion bash
jjhub completion zsh
jjhub completion fish