77thJunction
77th Junction Docs

CLI reference (jj)

Install, authenticate, and deploy from the terminal with the jj CLI.

Updated May 30, 2026

Developer mode (dashboard)

Installation

From the monorepo (development) or after cloning the platform repo:

npm install
npm run build:cli
npm run jj -- --help

Production API (default unless configured otherwise):

jj config --api https://api.77thjunction.app

Config is stored at ~/.77th-junction/config.json (token, API URL, email).

Authentication

CommandDescription
jj loginOpens browser OAuth — recommended
jj login --passwordEmail/password prompt (fallback)
jj logoutClears saved token
jj whoamiShow signed-in user
jj statusAPI health + session check

Browser login hits /cli/authorize on the web app, then polls /auth/cli/poll until the CLI receives a Firebase ID token.

Projects

jj projects list
jj projects create "Portfolio site" --path ~/projects/portfolio

Create picks a slug from the name. List shows slug, status, name, and live URL when deployed.

Deploy

jj deploy ./dist --project portfolio
# Auto-detects dist/, build/, or out/ inside the folder

The CLI zips the deploy root and POSTs to /projects/:id/deploy. On success it prints the live URL (subdomain or path based on platform mode).

Billing commands

CommandDescription
jj billing balanceCredit balance and plan
jj billing pricingHosting plans and auto-fix credit costs
jj billing subscribe starterOpens PayPal for Personal plan
jj billing subscribe builderOpens PayPal for Pro plan
jj billing subscribe proOpens PayPal for Team plan
jj billing buy pack25One-time 25-credit pack
jj billing buy pack60One-time 60-credit pack
jj billing buy pack150One-time 150-credit pack

CI example (GitHub Actions)

# Store JJ_TOKEN as a repo secret (from jj login flow or dashboard)
- run: npm ci && npm run build
- run: npx @77th/cli deploy ./dist --project my-site
  env:
    JJ_API_URL: https://api.77thjunction.app
    JJ_TOKEN: ${{ secrets.JJ_TOKEN }}

CI token flow: sign in once locally, copy token from ~/.77th-junction/config.json into your CI secret store. Rotate if exposed.