CLI reference
fabric is a non-interactive client: you pass everything as flags and it
never stops to prompt you. By default it prints human-readable output; add
--json to any command to get the same result as structured JSON for scripts
and agents to parse. fabric --help and fabric <cmd> --help are always
accurate: consult them rather than guessing, since the live command set is the
source of truth.
Auth
| Command | What it does |
|---|
fabric signup | Browser sign-up + CLI auth in one step. |
fabric login | Device-auth in the browser; saves your credentials. |
fabric login --no-browser | Headless device-code login: prints an activation URL + one-time code to approve from any browser. |
fabric whoami | Show the signed-in account. |
The change loop
| Command | What it does |
|---|
fabric change create "<name>" | Fork a new draft change off the current trunk frontier. Becomes the most recent change. |
fabric clone | Materialize the most recent change into a working directory. |
fabric status | Local diff of your working tree vs the cloned base. No network. |
fabric diff | Local detailed diff. No network. |
fabric push | Upload your working tree to the change as ops. Idempotent. Does not touch trunk or merge anything. |
fabric propose | Move the change draft → proposed (open it for review). Rejected if the change’s fabric.yaml is malformed. |
fabric approve | Record an approving review on the change. --request-changes records the opposite; --note "<text>" attaches a message. |
fabric accept | Land the change into trunk. Blocked until the repo’s approval policy (set in fabric.yaml) is met. |
fabric abandon | Discard the change. |
Onboarding & history
| Command | What it does |
|---|
fabric import <folder> | Replace the repo with an existing Git project’s full history (runs git fast-export for you). Advances trunk and relabels the repo from the folder name; prints the next step. |
fabric import <folder> --into <path> | Nest the imported project under a subfolder. |
fabric clone --at trunk | Read-only checkout of the current trunk frontier (how to view an import’s result). |
fabric clone --at op:<actor>:<seq> | Read-only checkout at a past frontier (time-travel). |
Conventions
--json on any command. Default output is human-readable text; --json
gives the same result as structured data for scripting and agents.- Op refs are
actor:seq: a frontier coordinate, not a content hash. - Idempotent push. Re-running
push only appends what’s new; “nothing to
do” means your tree already matches the change tip.
The definitive, always-current command set is fabric --help. This page
mirrors it for reference. When in doubt, trust the CLI.