Skip to main content

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

FlagDescription
--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).
FlagDescription
--with-tokenRead token from stdin instead of opening browser
--insecure-storageStore token in plain-text config file (for CI)
--hostname <host>Hostname to authenticate with

jjhub auth logout

Clear saved credentials.
FlagDescription
--hostname <host>Hostname to log out from

jjhub auth status

Show current authentication status.

jjhub auth token

Print the stored authentication token to stdout.
FlagDescription
--hostname <host>Hostname to get token for

jjhub repo

Manage repositories.

jjhub repo create <name>

Create a new repository.
FlagDescription
-d, --description <text>Repository description
--publicMake the repository public
--privateMake 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.
FlagDescription
-L, --limit <n>Max items to return (default: 30)

jjhub repo view

View repository details.
FlagDescription
-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.
FlagDescription
-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
--stackInclude detected stack change IDs

jjhub land list

List landing requests.
FlagDescription
-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.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub land review <number>

Review a landing request.
FlagDescription
-R, --repo <owner/repo>Repository
-a, --approveApprove the landing request
-r, --request-changesRequest changes
-c, --commentComment-only review
-b, --body <text>Review body

jjhub land merge <number>

Merge (land) a landing request.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub land checks <number>

View CI checks for a landing request.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub issue

Manage issues.

jjhub issue create

Create a new issue.
FlagDescription
-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.
FlagDescription
-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.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub issue close <number>

Close an issue.
FlagDescription
-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.
FlagDescription
--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.
FlagDescription
-r, --remoteUse 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.
FlagDescription
--change-id <id>Target change ID (required for remote operations)
-r, --remoteUse remote API
-R, --repo <owner/repo>Repository override

jjhub bookmark delete <name>

Delete a bookmark.
FlagDescription
-r, --remoteUse 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.
FlagDescription
-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.
FlagDescription
-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.
FlagDescription
-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.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub run watch <run-id>

Watch a workflow run in real-time (polls until completion).
FlagDescription
-R, --repo <owner/repo>Repository

jjhub run rerun <run-id>

Re-run a workflow.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub agent

Interact with AI agents.

jjhub agent list

List agent sessions for the repository.
FlagDescription
-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.
FlagDescription
-R, --repo <owner/repo>Repository
--messagesShow messages in the session

jjhub agent run <prompt>

Start a new agent session with an initial prompt (non-interactive).
FlagDescription
-R, --repo <owner/repo>Repository
--title <text>Session title

jjhub agent chat <session-id> <message>

Post a message to an existing agent session.
FlagDescription
-R, --repo <owner/repo>Repository

Search across the platform.

jjhub search repos <query>

Search repositories.
FlagDescription
-L, --limit <n>Max items (default: 30)

jjhub search issues <query>

Search issues.
FlagDescription
-s, --state <state>Filter: open, closed, all
-L, --limit <n>Max items (default: 30)

jjhub search code <query>

Search code.
FlagDescription
-L, --limit <n>Max items (default: 30)

jjhub label

Manage labels.

jjhub label list

List labels for the repository.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub label create [name]

Create a new label.
FlagDescription
-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.
FlagDescription
-R, --repo <owner/repo>Repository
-y, --yesSkip confirmation prompt

jjhub release

Manage releases.

jjhub release create <tag-name>

Create a new release.
FlagDescription
-R, --repo <owner/repo>Repository
-t, --title <text>Release title
-n, --notes <text>Release notes
--draftMark as draft
--prereleaseMark as pre-release

jjhub release list

List releases.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub secret

Manage repository secrets.

jjhub secret set <name>

Set a secret.
FlagDescription
-R, --repo <owner/repo>Repository
-b, --body <value>Secret value (required)

jjhub secret list

List secrets (names only, values are hidden).
FlagDescription
-R, --repo <owner/repo>Repository

jjhub secret delete <name>

Delete a secret.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub variable

Manage repository variables.

jjhub variable set <name>

Set a variable.
FlagDescription
-R, --repo <owner/repo>Repository
-b, --body <value>Variable value (required)

jjhub variable get <name>

Get a variable value.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub variable list

List variables.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub variable delete <name>

Delete a variable.
FlagDescription
-R, --repo <owner/repo>Repository

jjhub ssh-key

Manage SSH keys on your account.

jjhub ssh-key add

Add an SSH public key.
FlagDescription
-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).
FlagDescription
--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).
FlagDescription
--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).
FlagDescription
--email <email>Email to approve (required)

jjhub beta whitelist add

Add a whitelist entry (admin only).
FlagDescription
--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).
FlagDescription
--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
FlagDescription
-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