NUU Guide
Reference

CLI Commands

This page is generated from the help of the two CLIs: flint (your Flints) and nuu (the identity of this machine, the NUU account, the org, and the network). Do not edit it by hand. To make it again, run node scripts/gen-cli-reference.mjs --out <this file> in the repo flint. --check <this file> fails when a command or a flag of the help is missing here.

Each command also prints its help: flint <command> --help, nuu <command> --help.

The Obsidian rows that other commands print, and the Obsidian commands that 0.7.0 removed, are in Obsidian in Other Commands.

Contents

flint

flint [options] [command]

Make and manage Flints: folders of notes and shards

Subcommands: create, list, browse, status, open, open-url, cd, rename, convert, org, obshn, register, unregister, delete, move, sync, plan, registry, update, source, workspace, reference, fulfill, resolve, entity, worktree, send, shard, module, config, obsidian, migrate, plate, orbh, orbtest, orbcode, ite, tinderbox, server, steel, orbit, blacksmith, setup, doctor, fix, feedback, git, helper, mcp, features, where, env, whoami, auth-status, login, logout, foundation.

flint create

flint create|init [options] <name>

Create a Flint: a folder with a Mesh, shards, a Git repository, and an Obsidian vault

ArgumentDescription
nameThe name of the Flint
OptionDescription
-p, --path <dir>The parent folder (default: this folder)
--preset <name>The first shards (default: blank). See the presets below
--org <slug|none>The org (default: the default org of this machine, or none)
--org-id <uuid>The id of that org, when this machine does not know it
--visibility <level>private | org | public (default: org with an org, else private)
--no-obsidianSkip Obsidian for this run only (flint config set obsidian off turns it off on this machine)
--openOpen the Flint in Obsidian now (default: only in a terminal and without --json)
--no-openDo not launch Obsidian now; the payload is installed
--no-gitNo Git repository
--from <url>Clone a Flint from Git (its files give the name and the org)
--resume <path>Complete a creation that stopped
--type <type>guide or member (see the types below)
--about <address>Type guide: the entity that the Guide is about
--regarding <org>Type member: the org slug or id
--verboseShow every step, the shard install lines, and the kernel changes
--jsonOne JSON result on stdout. The progress goes to stderr
A Flint name uses the letters A to Z, the digits 0 to 9, spaces, and the characters - ' , . ! & + ; @. It has at most 100 characters. It does not end with a space or a dot.

Presets:
  blank        flint, orbh                     (default) Ask the agent what the Flint is for
  garden       flint, orbh, notepad
  quarry       flint, orbh, notepad
  lab          flint, orbh, notepad, plan
  observatory  flint, orbh, reports
  factory      flint, orbh, projects, increments, reports
  default      flint, orbh, and 7 shards for projects, plans, and reports

Types (most Flints need no type):
  --type guide   --about <address>             A Guide about an entity
  --type member  --regarding <org>             Your Member Flint of an org
  flint setup always makes the Computer Flint. flint create does not make it.

Examples:
  flint create "My Notes"
  flint create "Team Notes" --org none
  flint create "Server Notes" --no-obsidian
  flint create --from git@github.com:owner/notes.git

flint list

flint list|ls [options]

List the Flints of the roster of this machine

OptionDescription
--jsonOne JSON line: { ok, kind: "list", flints: [...] }
--full-pathShow full paths (not abbreviated)
-s, --statusShow valid/broken status for each entry
-g, --groupGroup the Flints by tag
-t, --tag <tag>Show only the Flints with this tag
--search <query>Show only the Flints whose name or description has this text

flint browse

flint browse [options]

Browse the Flints of the roster, and open the Orbh cockpit in one of them

OptionDescription
--allInclude registry entries whose folder is missing on disk
--no-kitty-keyboardDo not enable the kitty keyboard protocol for Shift-Enter

flint status

flint status [options]

Show the CLI release, this machine, this Flint, and pending migrations

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonPrint one JSON value with every fact
--idPrint only the id of this Flint

flint open

flint open [options] [reference] [name]

Open or focus a Flint in Obsidian

ArgumentDescription
referenceA Flint name or reference, such as "NUU Flint" or "(Guide) NUU Cognition". The word computer is the Computer Flint of this machine. With a second argument: a type
nameThe name, when the first argument is a type: flint open guide "NUU Cognition"
OptionDescription
--no-launchResolve and print the target without opening Obsidian

flint open-url

flint open-url [options] <url>

Open the target of a flint:// action URL

ArgumentDescription
urlA flint://open?ref=… action URL
OptionDescription
--no-launchResolve and print the target without opening Obsidian

flint cd

flint cd [options] <reference> [name]

Change the shell directory to a registered Flint

ArgumentDescription
referenceA Flint name or reference, such as "NUU Flint" or "(Guide) NUU Cognition". The word computer is the Computer Flint of this machine. With a second argument: a type
nameThe name, when the first argument is a type: flint cd guide "NUU Cognition"

flint rename

flint rename [options] <new-name>

Rename the Flint containing the current directory. In the Computer Flint, the machine display name changes too

ArgumentDescription
new-nameThe new Display Name
OptionDescription
--jsonOutput one JSON line

flint convert

flint convert [options] <flint>

Change the type of a Flint: flint, computer, guide, member. The id does not change

ArgumentDescription
flintThe Flint: a name, an address, or an id
OptionDescription
--to <type>The new type: flint, computer, guide, or member
--abortReturn a conversion that stopped part way to its start
--dry-runPrint the plan and change nothing
--owner <uuid>To member: the id of the person (default: person-id of the home config)
--regarding <org>To member: the org that the Flint regards (slug or id)
--regarding-id <uuid>To member: the id of that org, when this machine does not know it
--about <address>To guide: the entity that the guide is about
--jsonOutput one JSON line

flint org

flint org [options] [command]

The org of this Flint, bound by id

Subcommands: set, show.

flint org set

flint org set [options] <org>

Set the org of this Flint. The id comes from --id, the enrollment of this machine, or a Flint of this machine with that org. none removes the org: a Flint with no org is local (@/)

ArgumentDescription
orgThe org slug, the org id, or none
OptionDescription
--id <uuid>The id of the org. The admin of the org gives it. Not needed when this machine knows the org
--dry-runPrint the plan and change nothing
--jsonOutput one JSON line

flint org show

flint org show [options]

Show the org of this Flint: the slug of flint.toml and the id of flint.json

OptionDescription
--jsonOutput one JSON line

flint obshn

flint obshn [options] <orbh-profile> [prompt]

Open a new terminal tab in Obsidian and launch flint orbh i <orbh-profile>

ArgumentDescription
orbh-profileOrbh profile target (e.g. claude/o55h); '' lets Orbh select from its default target list
promptOptional initial prompt for the agent
OptionDescription
-p, --path <flint>The Flint: a folder, or a reference as in flint open (default: auto-detect)
--at <scope>Orbh store scope for the new session ('machine' or 'flint:<name>'); default is the vault's own store
--account <name>The harness account of the new session (default: the effective account of the runtime)

flint register

flint register [options] [path]

Register a Flint in the roster (places.json). A registered Flint takes the name and type of flint.toml again

ArgumentDescription
pathPath to a flint to register (defaults to current directory)
OptionDescription
-y, --yesAsk no question (register asks none; UX5 gives every command the flag)
--jsonOutput one JSON value

flint unregister

flint unregister [options] [path]

Unregister a Flint from the roster (places.json)

ArgumentDescription
pathPath to the flint (defaults to current directory)
OptionDescription
-y, --yesAsk no question
-f, --forceThe same as --yes
--jsonOutput one JSON value. It asks no question, so it needs --yes

flint delete

flint delete [options] [name-or-path]

Delete a Flint for good: its folder, its row in the roster, and its vault registry entry. The Obsidian backups stay

ArgumentDescription
name-or-pathFlint name or path (defaults to current directory)
OptionDescription
-f, --forceSkip confirmation prompt

flint move

flint move [options] <name-or-path> <destination>

Move a Flint and update the roster

ArgumentDescription
name-or-pathA Flint name or reference (resolved through the roster, as open does), or a path to a Flint
destinationDestination path
OptionDescription
-f, --forceOverwrite destination if it already exists
-y, --yesSkip the Tinderbox-membership confirmation prompt

flint sync

flint sync [options]

Make the files of this Flint match its lock and its declarations

OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--migrateApply pending script migrations before sync
--dry-runShow the complete sync plan
--no-gitNot needed: flint sync does not touch Git (retired)
--no-updateNot needed: flint sync does not move the lock (retired)
--jsonPrint the operation report as JSON

flint plan

flint plan [options]

Show the same preview as flint sync --dry-run

OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--no-gitNot needed: flint sync does not touch Git (retired)
--no-updateNot needed: flint sync does not move the lock (retired)
--jsonPrint the operation report as JSON

flint registry

flint registry [options] [command]

Rebuild and check the machine roster and the registry copy

Subcommands: rebuild, check.

flint registry rebuild

flint registry rebuild [options]

Rebuild the registry copy from the machine roster

OptionDescription
--dry-runShow the rebuild plan without writes
--jsonOutput as JSON

flint registry check

flint registry check [options]

Check registry entries, roster roots, and braced links without writes

OptionDescription
--jsonOutput as JSON

flint update

flint update [options]

Update flint-cli to the newest release (the npm dist-tag latest)

OptionDescription
-c, --checkCheck for a newer release without installing
--jsonPrint one JSON value: the current version, the newest version, and the install kind; install nothing

flint source

flint source [options] [command]

Manage external sources (repositories)

Subcommands: repo.

flint source repo

flint source repo [options] [command]

Manage source repositories

Subcommands: add, remove, update, list.

flint source repo add
flint source repo add [options] <name> <url>

Declare a source repository in flint.toml — a reference copy is cloned into Sources/Repos/ by flint sync

ArgumentDescription
nameName for this source repository (Proper Case)
urlGit URL to clone
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
flint source repo remove
flint source repo remove [options] <name>

Remove a source repository

ArgumentDescription
nameName of the source repository to remove
OptionDescription
-f, --forceSkip confirmation prompt
-p, --path <dir>Path to flint (default: auto-detect)
flint source repo update
flint source repo update [options] <name>

Re-fetch a source repository (delete and re-clone)

ArgumentDescription
nameName of the source repository to update
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
flint source repo list
flint source repo list [options]

List source repositories

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--wideRender full-width table output without narrow stacking

flint workspace

flint workspace [options] [command]

Manage workspace repositories

Subcommands: create, clone, register, remove, update, list.

flint workspace create

flint workspace create [options] <name> <remote>

Declare a Workspace/Repos/ repository in flint.toml — materialized (cloned from the remote) by flint sync

ArgumentDescription
nameName for this repository (Proper Case)
remoteGit remote URL to set as origin
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint workspace clone

flint workspace clone [options] <name> <remote>

Clone an existing remote into Workspace/Repos/ and declare it in flint.toml

ArgumentDescription
nameName for this repository (Proper Case)
remoteGit remote URL to clone from
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint workspace register

flint workspace register [options] <name>

Register an existing folder under Workspace/Repos/ in flint.toml, using its git origin remote

ArgumentDescription
nameName of the folder under Workspace/Repos/
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint workspace remove

flint workspace remove [options] <name>

Remove a workspace repository

ArgumentDescription
nameName of the repository to remove
OptionDescription
-f, --forceSkip confirmation prompt
-p, --path <dir>Path to flint (default: auto-detect)

flint workspace update

flint workspace update [options] <name>

Pull latest changes for a repository (or clone if missing)

ArgumentDescription
nameName of the repository to update
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint workspace list

flint workspace list [options]

List workspace repositories

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--wideRender full-width table output without narrow stacking

flint reference

flint reference [options] [command]

Manage references to codebases and other Flints

Subcommands: codebase, flint, remove, list.

flint reference codebase

flint reference codebase [options] <name> <path>

Add a codebase reference

ArgumentDescription
nameName of the codebase (Proper Case)
pathPath to the codebase directory

flint reference flint

flint reference flint [options] <name>

Add a Flint reference (flint sync fulfills it from the registry)

ArgumentDescription
nameName of the Flint (Proper Case)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint reference remove

flint reference remove [options] <name>

Remove a reference (codebase or Flint)

ArgumentDescription
nameName of the reference to remove
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint reference list

flint reference list [options]

List all references with status

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--wideRender full-width table output without narrow stacking

flint fulfill

flint fulfill [options] <type> [name] [targetPath]

Fulfill a codebase reference with a local path

ArgumentDescription
typeResource type: codebase
nameName of the resource to fulfill (or --all)
targetPathLocal path to the resource
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--target <path>Target path (alternative to positional argument)
--allFulfill all unfulfilled codebase references

flint resolve

flint resolve [options] <ref-or-type> [legacy-name]

Resolve an entity reference through the machine router, a shard package (@org/shard/name[@range][#place]), or a legacy Flint reference

ArgumentDescription
ref-or-typeEntity reference, such as "(Guide) NUU Cognition"; or a type (codebase, flint, bundle, source, or an entity type such as guide)
legacy-nameThe name, when the first argument is a type
OptionDescription
-p, --path <dir>Path to flint for legacy reference resolution
--verb <verb>The read verb: lookup, describe, locate, children (default: "lookup")
--to <rung>The rung to ask for: ping or locate (default: "locate")
--freshBypass the cache
--max-age <seconds>Accept a cached answer up to this age (the cache is off without it)
--netResolve through nclient, for any reference. A reference whose #place is another machine always goes through nclient
--jsonOutput as JSON

flint worktree

flint worktree [options] [command]

Manage git worktrees for codebase references

Subcommands: list, add, remove.

flint worktree list

flint worktree list [options] <codebase>

List git worktrees for a codebase reference

ArgumentDescription
codebaseCodebase reference name
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonOutput as JSON

flint worktree add

flint worktree add [options] <codebase> <suffix>

Create a machine-prefixed worktree for a codebase reference

ArgumentDescription
codebaseCodebase reference name
suffixBranch suffix; branch becomes <machine-name>-<suffix>
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint worktree remove

flint worktree remove [options] <codebase> <target>

Remove a managed worktree by branch, path, or suffix

ArgumentDescription
codebaseCodebase reference name
targetBranch, managed suffix, or worktree path
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint send

flint send [options] <target> <title> <instructions> <files...>

Send files to another Flint's inbox as a bundle

ArgumentDescription
targetTarget Flint name (from registry)
titleBundle title
instructionsProcessing instructions for the receiving Flint
filesFiles to send
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
-c, --copy <files...>Files to send as copies (kept in source)

flint shard

flint shard [options] [command] [name] [action] [args...]

Manage shards — install, create, and maintain shard packages

ArgumentDescription
nameShard ref to show its status, or use with exec
actionAction: <script-name>, exec <script>
argsAction arguments
OptionDescription
-p, --path <dir>Path to flint

Subcommands: install, uninstall, reinstall, list, browse, update, broadcast, status, migrate, create, build, type, dev, clone, fork, rename, id, setup, start, start-dev, hstart, hstart-dev, push, pull, publish, unpublish, published, release, versions, scripts.

flint shard install

flint shard install [options] [sources...]

Make the lock match the specs: resolve each spec, record the registry answers, install what is missing. With a source: install one or more shards (a package spec @org/name[@range][#place], a bare name, the name of a shard source, a path, or owner/repo). With --core: install each missing core shard

ArgumentDescription
sourcesPackage specs (e.g. @nuucognition/notepad@^1.1, notepad), the names of shard sources, paths, or owner/repo
OptionDescription
-f, --forceOverwrite existing shard files
--all-devBuild the shard of every shard source
--coreInstall each core shard (Flint, Orbh) that this Flint does not have; leave the present ones alone
--no-depsInstall the shard alone: do not install its missing dependencies first
--with-depsInstall the missing dependencies first (the default)
--from-git <owner/repo[#ref]>Install from a Git location (a tag, a branch, or a commit after #); the registry names the package and its state
--from-path <dir>Install from a folder on this machine (a path record)
--alias <alias>The local name of the shard in this Flint (the key in flint.toml); the slug of the package by default. Needed for a second shard with the same slug.
--referenceInstall by reference (use = "reference"): no copy under Shards/; the loader reads the source folder on this machine. Not for a GitHub source.
-p, --path <dir>Path to flint
--dry-runWith no source: show the plan and the registry answers, and write nothing
--jsonOutput one JSON object with retained files (with no source: the operation report)

flint shard uninstall

flint shard uninstall [options] <name>

Uninstall a shard and remove its unchanged payload files

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--jsonOutput one JSON object with removed and kept files

flint shard reinstall

flint shard reinstall [options] [name]

Reinstall installed shards from their declared source. With no name, reinstalls all.

ArgumentDescription
nameShorthand of a single installed shard to reinstall
OptionDescription
-p, --path <dir>Path to flint
--replace-note-templatesReplace each changed note template with the note template of the shard. A backup of the changed file comes first.
--jsonOutput one JSON object with retained files

flint shard list

flint shard list|ls [options]

List shards: one row per shard, with its id, package name, shorthand, version, and state (and the alias when it differs from the slug)

OptionDescription
-s, --sourcesShow only the shard records of flint.toml
--jsonOutput as JSON
-p, --path <dir>Path to flint
--wideRender full-width table output without narrow stacking

flint shard browse

flint shard browse|search [options] [query]

Browse the shards that this Flint can install: the registry and the sources of the Flints of this machine

ArgumentDescription
queryShow only the shards whose name, slug, shorthand, address, or description has this text
OptionDescription
--installedShow only the shards that this Flint has
--availableShow only the shards that this Flint does not have
--jsonPrint one value: the query, the entries, and the warnings
--wideRender full-width table output without narrow stacking
--verboseShow the fault behind a warning
-p, --path <dir>Path to flint

flint shard update

flint shard update [options] [ref]

Move the lock inside the range of each spec: the pnpm update of Flint. Updates every installed shard, or one shard by its alias, shorthand, or id; a build of a source is skipped

ArgumentDescription
refThe shard to update: the package name, the alias, the shorthand, or the id. Default: every installed shard
OptionDescription
-p, --path <dir>Path to flint
--reinstallForce re-download and reinstall all installed shards regardless of version
--jsonOutput one JSON object with retained files

flint shard broadcast

flint shard broadcast [options] <ref>

Update a shard in each Flint of this machine that installs it from this Flint (#<this Flint>); run it after a change to the source

ArgumentDescription
refThe shard of this Flint: the package name, the alias, the shorthand, or the id
OptionDescription
--dry-runShow the consumers and what the broadcast would do; write nothing
--only <flint...>Only these consumer Flints: a name, the slug of a name, or a path
--jsonPrint one value: the shard and one row for each consumer
--wideRender full-width table output without narrow stacking
-p, --path <dir>Path to flint

flint shard status

flint shard status|info [options] <ref>

Show one shard: its row, the lock state, the Git state of its source, dependencies, and pending migrations

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
--jsonPrint one value: the row, its details, and moved when the ref is a former name
--healthAlso run the shard health check and print its findings
-p, --path <dir>Path to flint

flint shard migrate

flint shard migrate [options] [command]

Shard migration management

Subcommands: show, list, run, finish, rerun.

flint shard migrate show
flint shard migrate show [options] [name]

Show migration state — one shard or all shards if no name given

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard (omit for all-shards overview)
OptionDescription
-p, --path <dir>Path to flint
--wideRender full-width table output without narrow stacking
flint shard migrate list
flint shard migrate list [options] <name>

List all migration steps with types and status

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
flint shard migrate run
flint shard migrate run [options] <name>

Execute migration — auto-chains scripts, rewrites the Mesh of a shorthand step, stops at agent/manual

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--dry-runPrint the steps and the rewrite plan (one line per file); write nothing
flint shard migrate finish
flint shard migrate finish [options] <name>

Mark the current agent or manual step done; the file stays

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
flint shard migrate rerun
flint shard migrate rerun [options] <name> <step>

Re-execute a specific step of the build (a step that the build does not have is refused)

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
stepStep identifier (e.g. s2, or full step ID)
OptionDescription
-p, --path <dir>Path to flint

flint shard create

flint shard create [options] <name>

Create a local shard source (two ids) and build the shard from it

ArgumentDescription
nameThe name (the Display Name law; Proper Case is the convention), e.g. "Code Review"
OptionDescription
-s, --shorthand <sh>Shard shorthand (default: a free value derived from the name)
-d, --description <text>Shard description on one line
--setup [scope]Add a setup file and declare the setup scope: full, flint, or local (default: full)
--no-installWrite the source without building the shard
--jsonPrint one JSON result
-p, --path <dir>Path to flint

flint shard build

flint shard build [options] <ref>

Build the shard of a record from its source: Shards/<Name>/ and the lock state (snapshot with the sha, or edited)

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the source
OptionDescription
-f, --forceOverwrite existing payload files
--jsonOne JSON value: { ok, id, alias, folder, path, state } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint shard type

flint shard type [options] [command]

Manage artifact types in editable shards

Subcommands: add.

flint shard type add
flint shard type add [options] [name]

Create and install an artifact type

ArgumentDescription
nameType name in Title Case, or Parent.Child
OptionDescription
--shard <sh>Editable owner shard
--description <text>Semantic type description
--folder <path>Artifact folder (default: Mesh/Types/<Name>)
--dashboardAdd a Dataview dashboard
--note-templateAdd a note template for Templater (otmp-*)
--no-installWrite the source files without installing
--jsonPrint one JSON result
-p, --path <dir>Path to Flint

flint shard dev

flint shard dev [options] <name> <url>

Promote a local shard source to a remote source — git init, set remote, commit, push (the source id stays)

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
urlGit remote URL (e.g., https://github.com/org/repo.git)
OptionDescription
-p, --path <dir>Path to flint

flint shard clone

flint shard clone [options] [spec]

Clone the source of a shard into Shards/(Source Remote) <Name> and build the shard from it (the registry says where the repository is)

ArgumentDescription
specThe package spec @org/name (or a bare name; owner/repo is the legacy spelling of --from-git)
OptionDescription
--from-git <owner/repo>Clone this Git location; the record keeps it as git = "owner/repo"
--alias <alias>The local name of the shard in this Flint (the key in flint.toml); the slug of the package by default
--no-buildClone the source only; do not build the shard
--jsonOne JSON value: { ok, alias, folder, spec, repo, git?, build? } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint shard fork

flint shard fork [options] <source>

Fork a shard into a new local source with a new shard id and a new source id, and of on each (the origin is not changed)

ArgumentDescription
sourceThe source: a package spec (@org/name[@range][#place]), an alias, an address (@<uuid>), a path, or owner/repo
OptionDescription
--name <name>The name of the fork (the Display Name law; Proper Case is the convention)
--shorthand <shorthand>The shorthand of the fork (default: the shorthand of the source)
--no-installMake the local source only; do not build the shard
--jsonOne JSON value: { ok, id, sourceId, source, org, shard, of, name, shorthand, folder, installed } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint shard rename

flint shard rename [options] [command] [ref]

Rename the name or the shorthand of a shard, in its local source or its remote source

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
--name <new-name>The new name (the Display Name law; Proper Case is the convention), e.g. "Project Tracker"
--shorthand <new-shorthand>The new shorthand (lowercase letters only)
--jsonOne JSON value: the rename result, or { ok: false, code, reason, next } on a refusal
-p, --path <dir>Path to flint

flint shard id

flint shard id [options] <ref>

Fill the absent shard id, source id, and package name (org below spec 0.4.0) of a shard source (a shard that is only a build never mints an id)

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard; or the path Shards/<folder> of a source
OptionDescription
--dry-runPrint what the command would do and write nothing
--jsonPrint one JSON result: { ok, id, sourceId, org, shard, minted, filled, folder, notice? }
-p, --path <dir>Path to flint

flint shard setup

flint shard setup [options] <ref>

Inspect or transition a shard's setup state (committed / local layers)

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--completeMark setup as completed
--resetReset setup to required
--scope <scope>Layer to update: flint | local | both (default: derived from manifest.setup)

flint shard start

flint shard start [options] <ref>

Output a dynamic manifest for loading a shard

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--dumpInclude required-reading file contents inline (experimental)
--jsonOne JSON value: the manifest text, or { ok: false, code, reason, next } on a refusal

flint shard start-dev

flint shard start-dev [options] <ref>

Output a dynamic manifest for a shard source ((Source Remote) or (Source Local))

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--jsonOne JSON value: the manifest text, or { ok: false, code, reason, next } on a refusal

flint shard hstart

flint shard hstart [options] <ref>

Output a headless-mode manifest for loading a shard

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--dumpInclude required-reading file contents inline (experimental)
--jsonOne JSON value: the manifest text, or { ok: false, code, reason, next } on a refusal

flint shard hstart-dev

flint shard hstart-dev [options] <ref>

Output a headless-mode manifest for a shard source ((Source Remote) or (Source Local))

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--jsonOne JSON value: the manifest text, or { ok: false, code, reason, next } on a refusal

flint shard push

flint shard push [options] <name>

Commit and push a remote source to its repository

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-m, --message <msg>Commit message
-b, --bump [level]Bump version in shard.yaml (patch, minor, major; default: patch)
-p, --path <dir>Path to flint

flint shard pull

flint shard pull [options] <name>

Git pull a remote source

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint

flint shard publish

flint shard publish [options] <name> [version]

Deprecated alias of release: the same arguments, the same result

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the source
versionVersion to release (default: read from shard.yaml)
OptionDescription
--org <slug>Register under this org: a slug that this machine knows. Default: the org of the Flint. A Flint with no org does not publish, also with --org
--no-registerTag and push only; do not register with the NUU Shard Registry
--jsonOne JSON value: { ok, alias, version, tag, sha, hash, repo, registered, registry, slug, state } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint shard unpublish

flint shard unpublish [options] <slug>

Remove a shard from the NUU Shard Registry (requires login)

ArgumentDescription
slugShard slug (e.g. NUU-Cognition/notepad)

flint shard published

flint shard published [options]

List your published shards on the NUU Shard Registry

flint shard release

flint shard release [options] <name> [version]

Release a version: build from a clean export of HEAD, tag v<version>, push, register with the NUU Shard Registry, and lock the shard as published when the registry lists the version

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the source
versionVersion to release (default: read from shard.yaml)
OptionDescription
--org <slug>Register under this org: a slug that this machine knows. Default: the org of the Flint. A Flint with no org does not publish, also with --org
--no-registerTag and push only; do not register with the NUU Shard Registry
--jsonOne JSON value: { ok, alias, version, tag, sha, hash, repo, registered, registry, slug, state } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint shard versions

flint shard versions [options] <name>

List the versions of a shard: the registry versions, else the Git tags of its location

ArgumentDescription
nameThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint
--jsonOne JSON value: { ok, address, from, versions: [{ tag, sha?, hash? }], installed }

flint shard scripts

flint shard scripts [options] <ref>

List executable scripts provided by a shard

ArgumentDescription
refThe package name, the alias, the shorthand, or the id of the shard
OptionDescription
-p, --path <dir>Path to flint

flint module

flint module [options] [command] [name] [command] [args...]

Manage the modules of this Flint (packages in Modules/), and run a command of a module

ArgumentDescription
nameA module name, to run one of its commands
commandThe command of the module
argsThe arguments of the command
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)

Subcommands: list, status, install, uninstall, build, update, settings, start, restart, stop, control, release.

flint module list

flint module list [options]

List the modules of this Flint: one row for each record of [modules]

OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the list as JSON
--wideRender full-width table output without narrow stacking

flint module status

flint module status [options] [name]

Show the package state and the sync plan of each module in this Flint (writes nothing)

ArgumentDescription
nameOne module
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the status as JSON

flint module install

flint module install [options] [spec]

Install a module, or with no input make the lock and the builds match the records of [modules]

ArgumentDescription
specA package spec: @org/name[@range][#place]
OptionDescription
--from-git <location>Install from a Git location: owner/repo[#ref]
--from-path <dir>Install from a folder on this machine (a source runs its build command first)
--name <name>The record name in [modules] (default: the slug of the module name)
--dry-runWith no input: show what would change; write nothing
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module uninstall

flint module uninstall [options] <name>

Remove a module: its build, its lock record, and its record. The settings file and the data folder stay

ArgumentDescription
nameThe module name
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module build

flint module build [options] <ref>

Build a module from its source in this Flint (Modules/(Source Local|Remote) <Name>), and record from = "source"

ArgumentDescription
refThe module name, or the source folder name
OptionDescription
--name <name>The record name in [modules] (default: the record of the source, else its slug)
--broadcastThen update the module in each Flint of this machine that installs it from this Flint
--dry-runWith --broadcast: show the Flints that would update; write nothing
--only <flint...>With --broadcast: update these Flints only
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module update

flint module update [options] [name]

Move each module to the newest version inside the range of its record

ArgumentDescription
nameOne module
OptionDescription
--dry-runShow the updates; write nothing
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module settings

flint module settings [options] <name> <action> <key> [value]

Read or write one key of the settings file of a module (Modules/<Name>.settings.toml); a write keeps every comment

ArgumentDescription
nameThe module name
actionget or set
keyA dotted key, for example machine or schedules.tick.machine
valueWith set: one TOML value. A string needs quotes: '"check-box"'
OptionDescription
--createWith set: make the table of a nested key when the file does not have it
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module start

flint module start [options] <name>

Start a live module under the Flint server of this Flint (starts the server when none runs)

ArgumentDescription
nameThe module name
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module restart

flint module restart [options] <name>

Stop the process of a live module, if one runs, and start a new one (starts the server when none runs)

ArgumentDescription
nameThe module name
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module stop

flint module stop [options] <name>

Stop a live module: SIGTERM, then SIGKILL after 5 s. It starts again with flint module start or the next start of the Flint server

ArgumentDescription
nameThe module name
OptionDescription
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module control

flint module control [options] <name> [action]

Call an action of the controller of a running live module, or with no action list its actions

ArgumentDescription
nameThe module name
actionThe action of the controller
OptionDescription
--data <json>The input of the action: one JSON object (default {})
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint the result as JSON

flint module release

flint module release [options] <name> [version]

Release a version of a module source: run its build step, check that the build output is committed, tag v<version>, push, register the module with the NUU Shard Registry, and lock it as published when the registry lists the version

ArgumentDescription
nameThe module name, or the source folder name
versionVersion to release (default: read from module.yaml)
OptionDescription
--org <slug>Register under this org: a slug that this machine knows. Default: the org of the Flint. A Flint with no org does not publish, also with --org
--no-registerTag and push only; do not register with the NUU Shard Registry
--jsonOne JSON value: { ok, alias, version, tag, sha, hash, repo, registered, registry, slug, state } or { ok: false, code, reason, next }
-p, --path <dir>Path to flint

flint config

flint config [options] [command]

The Flint CLI config file (~/.nuucognition/flint-dev/config.toml). name, machine-name, and org route to the NUU config

OptionDescription
--jsonOutput as JSON

Subcommands: open, get, set, name, machine-name, org.

flint config open

flint config open [options]

Open the Flint CLI config file (~/.nuucognition/flint-dev/config.toml) in your editor

flint config get

flint config get [options] <key>

Get a value of the Flint CLI config file (~/.nuucognition/flint-dev/config.toml)

ArgumentDescription
keyConfig key (dot notation, e.g. orbit.devOrigins). obsidian prints on or off; obsidian-trust prints auto or ask; update-check prints on or off

flint config set

flint config set [options] <key> <value>

Set a value in the Flint CLI config file (~/.nuucognition/flint-dev/config.toml)

ArgumentDescription
keyConfig key (dot notation, e.g. orbit.devOrigins): a dotted key is a nested table. obsidian takes on or off; obsidian-trust takes auto or ask; update-check takes on or off
valueValue to set (JSON for arrays/objects)

flint config name

flint config name [options] [name]

Your Name, the author of your notes. Routes to the NUU config (~/.nuucognition/config.toml)

ArgumentDescription
nameName to store (e.g. "Nathan Luo")
OptionDescription
--unsetUnset the stored name
--jsonOutput as JSON

flint config machine-name

flint config machine-name [options] [name]

The branch prefix of this machine (machine-name). Routes to the NUU config (~/.nuucognition/config.toml)

ArgumentDescription
nameThe branch prefix to store
OptionDescription
--unsetUnset the branch prefix; the hostname is the default
--jsonOutput as JSON

flint config org

flint config org [options] [command]

The org of this machine: new Flints get it. Routes to the NUU config (~/.nuucognition/config.toml)

Subcommands: show, set, unset, map.

flint config org show
flint config org show [options]

Show the org of this machine

OptionDescription
--jsonOutput as JSON
flint config org set
flint config org set [options] <slug>

Set the org of this machine. The id comes from --id, the enrollment of this machine, or a Flint of this machine with that org

ArgumentDescription
slugThe org slug, for example nuucognition
OptionDescription
--id <uuid>The id of the org. The admin of the org gives it. Not needed when this machine knows the org
--jsonOutput as JSON
flint config org unset
flint config org unset [options]

Remove the org of this machine: new Flints are local (no org). The Flints, the enrollment, and the account do not change

OptionDescription
--jsonOutput as JSON
flint config org map
flint config org map [options] <slug> <github-owner>

Map a GitHub owner to an org: one [orgs.<slug>] table in the NUU config (~/.nuucognition/config.toml). flint migrate run reads it for the Git records that the registry does not know

ArgumentDescription
slugThe org slug, for example nuu-cognition
github-ownerThe GitHub user or organization whose repositories hold the shards of the org
OptionDescription
--jsonOutput as JSON

flint obsidian

flint obsidian [options] [command]

Manage the Obsidian payload of this Flint

OptionDescription
-p, --path <dir>The Flint (default: the Flint of this folder)

Subcommands: status, update, repair, reload, backups, profiles, applied, vaults.

flint obsidian status

flint obsidian status [options]

Show the payload (pinned, installed, available, pending), the vault, the plugin, and the next command

OptionDescription
--jsonPrint the status model as JSON
--checkAlso probe each Obsidian manager for an old plugin, and exit 2 when an error or a warning is present
--tinderboxPrint one row for each member of the Tinderbox

flint obsidian update

flint obsidian update [options]

Pin the recommended release and install it; keep every personal setting

OptionDescription
--to <release>Install this release (a version such as 0.7.1)
--allow-downgradeWith --to: allow a release that is older than the pin
--replaceReplace any object at a release path, after a backup
--tinderboxUpdate each member of the Tinderbox, and print one row for each
--only <names...>With --tinderbox: update only these members
--dry-runPrint the plan and write nothing
--jsonPrint the result as JSON

flint obsidian repair

flint obsidian repair [options]

Restore the release files of the pinned release; --replace also replaces any object at a release path after a backup

OptionDescription
--replaceReplace every changed release file and every object at a release path, after a backup
--reset-settingsReplace each settings file with its initial settings, after a backup
--file <path>With --reset-settings: reset only this settings file
--yesOn an open vault: reload Obsidian after the repair also when another terminal tab runs a process
--dry-runPrint the plan and write nothing
--jsonPrint the result as JSON

flint obsidian reload

flint obsidian reload [options]

Reload Obsidian for this Flint; list the terminal tabs that stop

OptionDescription
--yesReload also when a terminal tab runs a process
--jsonPrint the result as JSON

flint obsidian backups

flint obsidian backups [options] [command]

List, show, restore, and prune the Obsidian backups

Subcommands: list, show, restore, prune.

flint obsidian backups list
flint obsidian backups list [options]

List the backups, newest first

OptionDescription
--scope <scope>flint, registry, deleted, or all (choices: "flint", "registry", "deleted", "all", default: "all")
--jsonPrint the backups as JSON
flint obsidian backups show
flint obsidian backups show [options] <id>

Show every field of one backup and each saved path

ArgumentDescription
idThe backup id
OptionDescription
--jsonPrint backup.json
flint obsidian backups restore
flint obsidian backups restore [options] <id>

Restore a backup: in full, one path with --file, or into an empty folder with --to

ArgumentDescription
idThe backup id
OptionDescription
--file <path>Restore only this path
--to <empty-dir>Copy the saved files into an empty folder; change nothing in the Flint
--jsonPrint the result as JSON
flint obsidian backups prune
flint obsidian backups prune [options]

Delete old backups: a preview without --yes. The newest backup of each scope stays

OptionDescription
--keep <n>Keep the newest n backups of each scope
--older-than <duration>Delete the backups older than a duration: <n>h, <n>d, or <n>w
--scope <scope>flint, registry, deleted, or all (choices: "flint", "registry", "deleted", "all", default: "flint")
--include-legacyAlso delete legacy imports
--yesDelete the backups of the preview
--jsonPrint the result as JSON

flint obsidian profiles

flint obsidian profiles [options] [command]

Choose an appearance profile (interactive)

Subcommands: list, activate, deactivate.

flint obsidian profiles list
flint obsidian profiles list [options]

List the appearance profiles of the installed release, and the active one

OptionDescription
--jsonPrint the appearance profiles as JSON
flint obsidian profiles activate
flint obsidian profiles activate [options] <id>

Activate an appearance profile

ArgumentDescription
idThe appearance profile id
OptionDescription
--jsonPrint the result as JSON
flint obsidian profiles deactivate
flint obsidian profiles deactivate [options]

Deactivate the active appearance profile

OptionDescription
--jsonPrint the result as JSON

flint obsidian applied

flint obsidian applied [options] [command]

List the resolved applied settings, with the layer and the last result of each key

OptionDescription
--jsonPrint the resolved applied settings as JSON

Subcommands: set, unset, apply.

flint obsidian applied set
flint obsidian applied set [options] <key> [value]

Declare one applied setting in the Flint layer (default) or the machine layer

ArgumentDescription
key<file>.<key>, for example appearance.cssTheme
valueThe value (JSON, else a plain string)
OptionDescription
--add <member>Add a member to a list key (repeatable)
--remove <member>Remove a member from a list key (repeatable)
--machineWrite the machine layer (<NUU home>/flint/config.toml) in place of flint.toml
--jsonPrint the result as JSON
flint obsidian applied unset
flint obsidian applied unset [options] <key>

Remove one applied setting from its layer. Obsidian keeps the last value

ArgumentDescription
key<file>.<key>
OptionDescription
--machineWrite the machine layer in place of flint.toml
--jsonPrint the result as JSON
flint obsidian applied apply
flint obsidian applied apply [options]

Apply the resolved set to the open vault now

OptionDescription
--jsonPrint the result as JSON

flint obsidian vaults

flint obsidian vaults [options] [command]

Repair the vault registry of Obsidian

Subcommands: repair.

flint obsidian vaults repair
flint obsidian vaults repair [options]

Complete pending registry changes and remove stale entries (no Obsidian process)

OptionDescription
--yesWrite the changes of the preview
--jsonPrint the result as JSON

flint migrate

flint migrate [options] [command]

Run and inspect the migrations of this Flint

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--wideRender full-width table output without narrow stacking
--agentic <version>Start one agent session that parks the sessions, copies every Flint, and migrates every Flint of this machine (the one-time sweep: 070)
--printWith --agentic: print the prompt of the session; write nothing and start nothing
--jsonWith --agentic: print the plan as one JSON value; start nothing

Subcommands: list, run, shared, local, rollback, finish, rerun, machine.

flint migrate list

flint migrate list [options]

List migration steps

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonPrint one JSON result
-a, --allShow all steps including completed (useful for finding rerun targets)
--wideRender full-width table output without narrow stacking

flint migrate run

flint migrate run [options]

Run pending migration steps

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--scope <scope>Filter by scope: shared | local
--to <version>Stop at this version
--dry-runInspect and plan without writing files
--jsonPrint one JSON result
--resume <run>Resume an unfinished migration run
--retire-legacy-localMove old .flint state that no step moves into .flint/legacy/<run>/

flint migrate shared

flint migrate shared [options]

Run pending shared migrations

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--scope <scope>Filter by scope: shared | local
--to <version>Stop at this version
--dry-runInspect and plan without writing files
--jsonPrint one JSON result
--resume <run>Resume an unfinished migration run
--retire-legacy-localMove old .flint state that no step moves into .flint/legacy/<run>/

flint migrate local

flint migrate local [options]

Run pending local migrations

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--scope <scope>Filter by scope: shared | local
--to <version>Stop at this version
--dry-runInspect and plan without writing files
--jsonPrint one JSON result
--resume <run>Resume an unfinished migration run
--retire-legacy-localMove old .flint state that no step moves into .flint/legacy/<run>/

flint migrate rollback

flint migrate rollback [options] [run]

Restore a migration backup if its files have no later edits

ArgumentDescription
runMigration run ID (default: latest)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonPrint one JSON result

flint migrate finish

flint migrate finish [options]

Verify and complete the exact started agent or manual step

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint migrate rerun

flint migrate rerun [options] <step-id>

Verify and run a script step through a migration transaction

ArgumentDescription
step-idStep ID
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonPrint one JSON result

flint migrate machine

flint migrate machine [options]

Survey every Flint of this machine before a machine migration (reads only)

OptionDescription
--jsonPrint one JSON result
--only <names...>Only these Flints (name or path)
--to <version>The target version (default: the version of this CLI)
--probeRead each remote once (git ls-remote, 10 second timeout)
--agentic <version>Start the sweep session of this version: park the sessions, copy every Flint, and migrate every Flint (the same as flint migrate --agentic)
--printWith --agentic: print the prompt of the session; write nothing and start nothing

flint orbh

flint orbh [options] [command]

Orbh meta-harness agent management

OptionDescription
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: launch, ping, step, i, tui, v, resume, continue, request, wait, attach, detach, session, update, rooms, improve, approval, respond, result, requests, message, humanchannel, artifact, end, kill, close, park, discard, focus, list, active, timeline, inspect, peek, stats, watch, context, scope, space, station, cron, move-spool, save, restore, import, runtimes, profiles, auth, claude, heal, verify, verify-sessions, rebuild-session-snapshots, rebuild, orchestrator, server, archive, reconcile, interrupt, page, job, usage, room, fleet, actor, stream, agent, worker, procedure, workflow, compact, command-action, switch, copy-spools, store, fork.

flint orbh launch

flint orbh launch [options] [target] [prompt]

Launch a new headless agent session

ArgumentDescription
targetHarness runtime or runtime/name (agy, claude, codex, cursor, droid, grok, kimi, muse, opencode). Omit it to use the default target list; the first argument is then the prompt
promptPrompt for the agent (or pass --prompt-file)
OptionDescription
--prompt-file <path>Read the prompt from a UTF-8 file instead of the argument. Keeps a typed launch command short when the prompt is long.
--continues <sessionId>Link as continuation of another session
--max-turns <n>Maximum number of agent turns
--budget <usd>Maximum budget in USD (where supported by the harness)
--model <model>Model override
--account <name>Harness account name, or 'none' to bypass the runtime default
--allow-switchLet the account autoswitch move an explicit --account to a good fallback account when it is limited
--allow-manual-onlyLet --account name a manual-only account (auth manual-only)
--title <title>Pre-set session title (skips agent self-registration)
--description <description>Pre-set session description
--application <name>Tag the session with the launching application (also read from ORBH_APPLICATION); tagged sessions are hidden from list, active, and the cockpit by default
--fleet <handle>Make the new session a member of this open fleet (stamp via launch, one roster event)
--declare-fleet <handle>Declare a new fleet with the new session as its root (needs --charter-file)
--charter-file <path>The charter of the fleet that --declare-fleet declares: the goal, the boundary, and the done condition
--fleet-name <name>The display name of the fleet that --declare-fleet declares (default: the handle in Title Case)
--forceBypass the live-run guard (may create concurrent runtimes)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh ping

flint orbh ping [options] [targetOrPrompt] [prompt]

Run one unattended inference turn and print its returned string

ArgumentDescription
targetOrPromptHarness runtime or runtime/name (agy, claude, codex, cursor, droid, grok, kimi, muse, opencode); with --continue, the complete prompt
promptComplete prompt for a fresh ping
OptionDescription
-c, --continue <predecessorId>Continue a returned ping in a new spool
--account <name>Harness account name, or 'none' to bypass the runtime default
--application <name>Tag the session with the launching application (also read from ORBH_APPLICATION); tagged sessions are hidden from list, active, and the cockpit by default
--jsonPrint {"sessionId","result"} so the returned ping can be chained with --continue
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh step

flint orbh step [options] [command]

Step mode: run the steps a Flint declares for itself ([orbh.step] in flint.toml), one headless turn per step.

Subcommands: start, list, show.

flint orbh step start
flint orbh step start [options]

Take one step (or N with --auto) on the Flint's path, printing each returned step report as it lands.

OptionDescription
--auto <n>Run up to N steps in sequence; stops early on the contract's stop conditions
--on <name>Path name to run on (default: the contract's path); replaces {path} in the prompt
--entry <text>Designate a queue entry: appended to the prompt as "Designated queue entry: <text>"
--target <runtime/profile>Override the contract's launch target
--account <name>Override the contract's harness account
--dry-runPrint the resolved contract and the request argv without launching
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh step list
flint orbh step list [options]

The paths in this Flint with their counters and the last step's index line.

OptionDescription
--jsonMachine-readable output
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh step show
flint orbh step show [options] [path]

The last N step reports of a path (default: the contract's path, last 1).

ArgumentDescription
pathPath name, e.g. Main
OptionDescription
--last <n>How many reports, newest first (default: "1")
--jsonMachine-readable output
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh i

flint orbh i|interactive [options] [target] [prompt]

Launch an interactive agent TUI with Orbh session tracking; --continue follows a completed compaction to its successor

ArgumentDescription
targetHarness runtime or runtime/name (agy, claude, codex, cursor, droid, grok, kimi, muse, opencode). Omit it to use the default target list; the first argument is then the prompt
promptOptional initial prompt (or pass --prompt-file)
OptionDescription
--dev-channelsLoad development MCP channels (e.g. orbh)
--prompt-file <path>Read the prompt from a UTF-8 file instead of the argument. Keeps a typed launch command short when the prompt is long.
-c, --continue <sessionId>Continue a previous Orbh session (completed compaction predecessors resolve to the successor)
--continues <sessionId>Link as continuation of another session (new session)
--session-id <uuid>Pre-allocate the new session id (full UUID). Lets an external launcher know the id before the session registers.
--model <model>Model override
--account <name>Harness account name, or 'none' to bypass the runtime default
--no-detachRun in legacy foreground handoff mode instead of attaching to a detachable daemon
--detachedStart the detachable daemon and return at once: print the session id and the attach command, attach nothing (detached launch)
--plainUse the explicit raw transport mode instead of the App Layer
--detachableRun as a detachable daemon (deprecated; detachable is the TTY default — use --no-detach to opt out)
--close-after <seconds>Bounded run: close the runtime + TTY after N seconds (testing/acceptance)
--forceBypass the live-run guard when continuing (may create concurrent runtimes)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh tui

flint orbh tui [options]

Open the full-screen Orbh cockpit

OptionDescription
--view <sessions|active|usage|agents|updates|approvals|discord|steps>Initial cockpit view (default: "sessions")
--renderer <ink|opentui>Cockpit renderer (default: opentui)
--mode <full|vertical>Cockpit shape: full tabbed cockpit, or the vertical split-pane multiplexer (default: "full")

flint orbh v

flint orbh v [options]

Open the vertical Orbh cockpit (tui --mode vertical)

OptionDescription
--view <sessions|active|usage|agents|updates|approvals|discord|steps>Initial cockpit view (default: "sessions")
--renderer <ink|opentui>Cockpit renderer (default: opentui)

flint orbh resume

flint orbh resume [options] <id> [prompt]

Resume a headless session with a prompt; live detachable managers attach instead, and verified runtime-declared returned processes are reclaimed

ArgumentDescription
idSession ID (full or partial)
promptPrompt for the resumed headless turn (required unless rerouting to a live detachable manager)
OptionDescription
--account <name>Account for a session that has no stored account
--forceBypass the live-run guard (may create concurrent runtimes; prefer --steal)
--stealTerminate the live non-detachable run before resuming; detachable interactive sessions attach instead (attach takeover is automatic)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh continue

flint orbh continue|c [options]

Pick a session interactively and continue it on the profile it started with

OptionDescription
-S, --status <status>Filter by session workState (e.g. working, finished)
-r, --runtime <runtime>Filter by runtime (e.g. claude, codex)
-q, --search <text>Pre-filter title, description, and prompt (case-insensitive). The picker also has an interactive / search.
--forceBypass the live-run guard (may create concurrent runtimes)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh request

flint orbh request [options] [target] [text...]

Launch a request turn and wait for its correlated result, or post a deferred question to an existing session

ArgumentDescription
targetRuntime/name target, session ID, or prompt (with --runtime, or with no target: the default target list applies)
textPrompt text or deferred question
OptionDescription
--runtime <runtime>Harness runtime or runtime/name target (alternative to positional runtime)
--streamStream the live transcript while waiting
--stream-attempt <json>Reserved stream binding (used by step start)
-c, --continue <sessionId>Resume a previous session and wait for the result of the turn this command initiates
--continues <sessionId>Link as continuation of another session (new session)
--max-turns <n>Maximum number of agent turns
--budget <usd>Maximum budget in USD (where supported by the harness)
--model <model>Model override
--account <name>Harness account name, or 'none' to bypass the runtime default
--allow-switchLet the account autoswitch move an explicit --account to a good fallback account when it is limited
--allow-manual-onlyLet --account name a manual-only account (auth manual-only)
--title <title>Pre-set session title
--description <description>Pre-set session description
--application <name>Tag the session with the launching application (also read from ORBH_APPLICATION); tagged sessions are hidden from list, active, and the cockpit by default
--timeout <seconds>Maximum time to wait before detaching
--output-schema <schema>JSON Schema (a file path, or inline JSON) that each return of the new session must match; a matching return is stored as result.structured
--jsonPrint the result as JSON: the structured value when the return matched an output schema, else the text as a JSON string (implies -q)
-q, --quietSuppress spinner and status output, print only the raw result (for agent use)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh wait

flint orbh wait [options] <ids...>

Wait for the correlated results of one or more currently anchored turns

ArgumentDescription
idsSession IDs (full or partial)
OptionDescription
--nextWait for a result newer than the latest result present at invocation
--host-run <nonce>Collect the run that a launch host records under this payload nonce (printed by request -c after a host timeout)
--timeout <seconds>Maximum time to wait before giving up
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh attach

flint orbh attach [options] [id]

Attach to a detachable interactive session, following completed compaction predecessors to their successor; browse detached sessions when no id is given. Modern clients cut over automatically during compaction; failed or legacy cutover prints flint orbh attach <successor> for manual recovery. Detach with Ctrl-\ or orbh detach <id>.

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--printPrint the detached-session table instead of opening the picker (no id only)
--jsonPrint the detached-session listing as JSON (no id only)
--plainUse the explicit raw transport mode instead of the App Layer
--stealDeprecated no-op: attach always takes over automatically; the displaced client is notified
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh detach

flint orbh detach [options] [id]

Detach the active client of a detachable interactive session from another terminal — the agent keeps running. Self-targets via ORBH_SESSION_ID inside a harness.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh session

flint orbh session [options] <id> [action] [value...]

Agent-facing session lifecycle commands. Compaction moved to flint orbh compact start / handoff / finish (agent-authored handoff, in-process only). When ORBH_SESSION_ID is set, <id> may be omitted for self-targeting actions (register, return, set, get, ask).

ArgumentDescription
idSession ID (full or partial), or the action verb when ORBH_SESSION_ID is set
actionAction: register, return, set, get, ask, note — or use "await" for event subscription
valueArguments for the selected action
OptionDescription
--timeout <seconds>Timeout in seconds (default: "3600")
-f, --filter <key=value>Filter payloads by field value (for await); repeat to add more (default: [])
--listList available event types (for await)
--host <host>Server host override (for await)
--port <port>Server port override (for await)
--orb-store-dir <path>Override the Orb store directory (.orb) used to locate the server (for await)
--config <path>Path to orbh.toml (for await)
--finishReturn this turn and finish the session (default)
--awaitReturn this turn and leave the session awaiting follow-up
--until-group <group>With return --await: resume when every job in this group is terminal
--barrier-timeout <seconds>With return --await --until-group: fail still-running group jobs after this many seconds
--wake-at <when>With return --await: wake on a schedule. ISO 8601 datetime (2026-07-26T14:02) or +duration (+45m, +2h, +1h30m, +1d)
--wideRender full-width list output without narrow stacking
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
Compaction has moved to its own in-process lifecycle:
  flint orbh compact start      Print the handoff contract + the path to write it to; hold the pager, show [Compacting...].
  flint orbh compact handoff    TURN-ENDING: validate the handoff, end this context, and relaunch the same session; use --into runtime/profile to change runtime or profile.
  flint orbh compact finish     In the fresh context, confirm the handoff was read and clear the compaction marker.
  flint orbh compact abort    Release the pager hold if you decide not to compact.

flint orbh update

flint orbh update [options] [command] <text...>

Durable, non-blocking operator updates from inside a session

ArgumentDescription
textThe update: a finding, a decision, a completed unit, or a blocker
OptionDescription
--kind <kind>Advisory category (finding|decision|completed|blocker)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: list, flush.

flint orbh update list
flint orbh update list [options] [sessionId]

List a session's updates (default: your own), --all for every session, or --fleet <handle> for the members of one fleet

ArgumentDescription
sessionIdSession to read (defaults to ORBH_SESSION_ID)
OptionDescription
--allAggregate updates across every session in this flint
--fleet [handle]Only the members of the declared fleet <handle> (a bare --fleet is the deprecated name of --all)
--limit <n>Most recent entries to show (default 20)
--jsonEmit JSON for tooling
flint orbh update flush
flint orbh update flush [options] [sessionId]

Mirror pending updates to Discord now, bypassing the burst window

ArgumentDescription
sessionIdSession to flush (defaults to ORBH_SESSION_ID)

flint orbh rooms

flint orbh rooms [options]

List Orbh rooms - the rooms equivalent of flint orbh list

OptionDescription
--wideRender full-width table output without narrow stacking
--jsonPrint rooms as stable JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh improve

flint orbh improve [options] <description...>

File a structured Orbh improvement through the improve station

ArgumentDescription
descriptionWhat is wrong or could be better
OptionDescription
--title <title>Short title; defaults to the first 8 words of the description
--category <category>Request category: bug or improvement (default: "improvement")
--evidence <text>Session IDs, commands, error text, or file paths
--requestWait for an answer from the improve station
--timeout <seconds>Maximum request wait while retaining the station item (default: "600")
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh approval

flint orbh approval [options] [command]

Typed, non-blocking human approval gates (approve/refine/reject)

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: request, list, show, respond, say, finish.

flint orbh approval request
flint orbh approval request [options] <title>

Open an approval gate from inside this session (non-blocking)

ArgumentDescription
titleOne-line proposal title
OptionDescription
--body <text>Long-form proposal body
flint orbh approval list
flint orbh approval list [options]

List approvals across this flint (default: pending only)

OptionDescription
--pendingShow only pending approvals (the default)
--allInclude answered and orphaned approvals
--session <id>Only approvals requested by this session
--wideRender full-width table output without narrow stacking
flint orbh approval show
flint orbh approval show [options] <id>

Show one approval in full

ArgumentDescription
idApproval id (full or prefix)
flint orbh approval respond
flint orbh approval respond [options] <id> <verdict> [comment...]

Record a verdict and wake the requester

ArgumentDescription
idApproval id (full or prefix)
verdictOne of approve|refine|reject
commentOptional comment carried in the wake digest
flint orbh approval say
flint orbh approval say [options] <id> <text...>

Post a message into an approval's Discord thread (discussion, not a verdict)

ArgumentDescription
idApproval id (full or prefix)
textWhat to say
flint orbh approval finish
flint orbh approval finish [options] <id> [note...]

Close out an approval you have acted on, and settle its thread

ArgumentDescription
idApproval id (full or prefix)
noteOptional one-line note about what you did

flint orbh respond

flint orbh respond [options] <id> <response...>

Answer a pending question on a session

ArgumentDescription
idSession ID (full or partial)
responseResponse text
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh result

flint orbh result [options] <id>

Get a session turn result: the dispatched turn while your dispatch obligation is open, else the latest

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--run <n>Get the result for the 1-based run number
--latestPrint the latest result, also while a dispatch obligation of yours names another turn
--jsonPrint the run result as JSON: sessionId, runId, run, disposition, result, and structured (present when the return matched an output schema)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh requests

flint orbh requests [options] <id>

View all request/response pairs for a session

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--pendingShow only unanswered requests
--wideRender full-width table output without narrow stacking
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh message

flint orbh message [options] [command]

Send or inspect persisted inter-session messages

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: send, broadcast, request, respond, list.

flint orbh message send
flint orbh message send [options] <targetId> <text...>

Append a message to a target session

ArgumentDescription
targetIdTarget session ID (full or partial), agent:<name>, or fleet:<handle> (the root session of the fleet)
textMessage text
OptionDescription
--wakelegacy compatibility flag; against an awaiting target this is a no-op because every message wakes it
--reviveif the target session has ended, explicitly resume it with the message digest as the prompt
flint orbh message broadcast
flint orbh message broadcast [options] <text...>

Fan one message out to every non-retired agent's and live worker's backing session in the current store, or to the live members of one fleet

ArgumentDescription
textMessage text
OptionDescription
--agents-onlyBroadcast to orb agents only
--workers-onlyBroadcast to live workers only
--fleet <handle>Broadcast to the live member sessions of the declared fleet <handle> (⛵), not to agents or workers
--jsonPrint the delivery report as JSON
flint orbh message request
flint orbh message request [options] [targetId] [question...]

Ask a blocking peer request of another session

ArgumentDescription
targetIdTarget session ID (full or partial), or fleet:<handle> (the root session of the fleet)
questionQuestion text
OptionDescription
--timeout <seconds>Maximum wait before leaving the request pending
--cancel <requestId>Cancel a pending peer request created by this session
flint orbh message respond
flint orbh message respond [options] <requestId> <answer...>

Respond to a pending peer request on this session

ArgumentDescription
requestIdPeer request id
answerAnswer text
flint orbh message list
flint orbh message list [options] <id>

List a session message history

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--wideRender full-width table output without narrow stacking

flint orbh humanchannel

flint orbh humanchannel [options] [command]

Configure and test the machine human-input channel

Subcommands: setup, status, refresh, test, webhook.

flint orbh humanchannel setup
flint orbh humanchannel setup [options]

Configure Discord as the Orbh human-input channel

OptionDescription
--channel <id>Discord channel id
--token <token>Discord bot token (prefer --token-stdin)
--token-stdinRead the Discord bot token from stdin
--server <id>Discord guild id (otherwise derived from --channel)
--provision-forum [name]Provision or reuse an approvals forum (default name: approvals)
--frequency <frequency>ask-freely, ask-sparingly, or never
--notify <id...>Discord user id(s) to @-mention on approvals and human-input requests ("none" clears; omit to leave unchanged)
--responders <id...>Discord user id(s) allowed to cast approval verdicts ("none" allows any human; omit to leave unchanged)
--approval-forum <id>Discord FORUM channel id for approvals — one thread per approval (omit to reuse or provision one)
--disableSave the channel as disabled
--enableSave the channel as enabled
flint orbh humanchannel status
flint orbh humanchannel status [options]

Show human-channel configuration and check Discord access

flint orbh humanchannel refresh
flint orbh humanchannel refresh [options]

Reconcile durable pending approvals into the configured channel now

flint orbh humanchannel test
flint orbh humanchannel test [options]

Post a test message to the configured human-input channel

OptionDescription
--message <message>Test message content (default: "Orbh human-channel test")
flint orbh humanchannel webhook
flint orbh humanchannel webhook [options] [command]

Configure the channel webhook that posts fleet updates under the fleet name

Subcommands: ensure, set, clear.

flint orbh humanchannel webhook ensure
flint orbh humanchannel webhook ensure [options]

Create or reuse the updates webhook with the bot (needs the Discord permission "Manage Webhooks")

flint orbh humanchannel webhook set
flint orbh humanchannel webhook set [options] <url>

Store a webhook URL that you made in Discord (https://discord.com/api/webhooks/<id>/<token>)

ArgumentDescription
urlThe webhook URL (holds the secret token; it is never printed)
flint orbh humanchannel webhook clear
flint orbh humanchannel webhook clear [options]

Remove the updates webhook; fleet updates then post through the bot with a fleet heading

flint orbh artifact

flint orbh artifact [options] <id-or-path> [path]

Track a created artifact path in the session interface

ArgumentDescription
id-or-pathSession ID, or artifact path when ORBH_SESSION_ID is set
pathPath to the artifact when a session ID is passed explicitly
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh end

flint orbh end|x [options] [id]

Finish this session and close or terminate the live harness

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--result <text>Result text to store on the current run
--no-leafLeave the bound Obsidian terminal tab open — the pane returns to a shell prompt
--no-killDo not SIGTERM the recorded live process when no tab can be closed
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh kill

flint orbh kill [options] [id]

Kill a running session process and its process group. Refuses while descendant sessions still run, unless --force

ArgumentDescription
idSession ID (full or partial); defaults to ORBH_SESSION_ID inside a harness
OptionDescription
--forceKill even when descendant sessions still run; they keep running without a parent
--cascadeAfter the kill, abandon each awaiting descendant session (reason parent-killed), so no later wake resumes it
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh close

flint orbh close [options] [id]

Close this session — record closed retention, terminate the harness, then close the bound Obsidian terminal tab. Pass --no-leaf to leave the tab open at a shell prompt. Self-targets via ORBH_SESSION_ID when run from inside an Orbh harness.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--no-leafLeave the bound Obsidian terminal tab open — the pane returns to a shell prompt
--obsidianDeprecated: closing the bound tab is now the default. Accepted so existing callers keep working
--forceClose even when descendant sessions still run; they keep running without a parent
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh park

flint orbh park [options] [id]

Await further activity for this session (the legacy park spelling) — record awaiting retention, pin it to flint orbh c, ensure the Orbh orchestrator wake sweep, terminate the current harness turn, then close the bound Obsidian terminal tab. Pass --no-leaf to leave the tab open at a shell prompt. With --until-group, await the all-terminal job-group barrier. Self-targets via ORBH_SESSION_ID when run from inside an Orbh harness.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--until-group <group>Await until every job in this group reaches a terminal state (done OR failed), then resume with the results
--barrier-timeout <seconds>With --until-group: force-resolve the barrier after this many seconds (still-running group jobs are marked failed) so the session can never be stranded
--forceAllow parking a confirmed-live run when no interactive manager can terminate it, or another session whose descendant sessions still run
--no-leafLeave the bound Obsidian terminal tab open — the pane returns to a shell prompt
--obsidianDeprecated: closing the bound tab is now the default. Accepted so existing callers keep working
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh discard

flint orbh discard [options] [id]

Discard this session — tombstone its entry (event-sourced; hidden from flint orbh list), terminate the harness, then close the bound Obsidian terminal tab. Pass --no-leaf to leave the tab open at a shell prompt. No confirmation. Self-targets via ORBH_SESSION_ID when run from inside an Orbh harness.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--no-leafLeave the bound Obsidian terminal tab open — the pane returns to a shell prompt
--obsidianDeprecated: closing the bound tab is now the default. Accepted so existing callers keep working
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh focus

flint orbh focus [options] <id>

Focus this session's Obsidian terminal tab (if bound)

ArgumentDescription
idSession ID (full or partial)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh list

flint orbh list [options]

Open the Sessions cockpit in a TTY; use --print for the static table or --json for machine-readable output

OptionDescription
-a, --allInclude sessions hidden from the default work queue: discarded sessions and application-tagged sessions, which print under a Special section (--print/--json only; the cockpit toggles them with x)
--application <name>Only sessions tagged with this application (implies --all for them)
-s, --statsPrint token/turn stats (prefers persisted run context; otherwise reads transcripts)
-S, --status <status>Filter by session workState (e.g. working, finished)
-r, --runtime <runtime>Filter by runtime (e.g. claude, codex)
-q, --search <text>Search the id prefix, title, description, and prompt (case-insensitive)
--jsonPrint machine-readable JSON (the default when invoked from inside an Orbh session)
--printPrint the static session table instead of opening the cockpit
--widePrint the static table full-width without narrow stacking
--subagentsFlatten subagent sessions into top-level rows instead of rendering dispatch trees
--all-scopesList sessions machine-wide — every registered Flint store plus ~/.orb — grouped by scope (static table output)
--detachedOnly detached-interactive sessions
--fleet <handle>Only the members of the declared fleet <handle>: the root, the sessions that carry its stamp, and its explicit members
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh active

flint orbh active [options]

Open the Active cockpit in a TTY with subagents nested; use --print for the static tree or --json for machine-readable output

OptionDescription
-r, --runtime <runtime>Filter by runtime (e.g. claude, codex)
-q, --search <text>Search the id prefix, title, description, and prompt (case-insensitive)
--jsonPrint machine-readable JSON (the default when invoked from inside an Orbh session)
--printPrint the static session tree instead of opening the cockpit
--widePrint the static tree full-width without narrow stacking
--subagentsFlatten subagent sessions into top-level rows instead of rendering dispatch trees
--detachedOnly detached-interactive sessions
-a, --allInclude application-tagged sessions in the tree
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh timeline

flint orbh timeline [options] [root-session-id]

Reconstruct a read-only chronological timeline for a session tree, a declared fleet, or a room; it reads archived sessions too

ArgumentDescription
root-session-idRoot session ID (full or partial), or fleet:<handle> for the members of a declared fleet and their trees; omit with --room
OptionDescription
--room <room>Use all participants in a room as timeline roots
--since <time>Include events at or after an ISO time or relative age (for example 2h or 3d)
--until <time>Include events at or before an ISO time or relative age
--depth <n>Maximum dispatch-tree depth
--classes <classes>Comma-separated event classes (runs, rooms, jobs, interface, delivery, messages, requests, sessions, dispatches, continuations, notes)
--jsonPrint the stable machine-readable report (the default inside an Orbh session)
--markdownPrint the Markdown narrative even inside an Orbh session
--fullDisable high-volume event collapsing
--no-collapseDisable high-volume event collapsing
--collapse-threshold <n>Collapse consecutive same-session/class spans longer than this (default: "8")
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh inspect

flint orbh inspect [options] <id>

Inspect a specific session in detail

ArgumentDescription
idSession ID (full or partial)
OptionDescription
-r, --resultsShow run results
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh peek

flint orbh peek [options] <id>

Show compact projection-only status for a session

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--jsonPrint a machine-readable status object
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh stats

flint orbh stats [options] <id>

Show detailed session statistics — turns, tokens, tools, files

ArgumentDescription
idSession ID (full or partial)
OptionDescription
--filesShow full file paths
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh watch

flint orbh watch [options] <id>

View a session transcript (fullscreen in a TTY; --stream for streaming output)

ArgumentDescription
idSession ID (full or partial)
OptionDescription
-v, --verboseShow full thinking blocks and tool output
--streamForce streaming output instead of the fullscreen TTY viewer
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh context

flint orbh context [options] [id]

Show token context-window occupancy for a session. Self-targets via ORBH_SESSION_ID.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--jsonPrint a machine-readable occupancy object
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh scope

flint orbh scope [options]

Pre-flight probe: print which Orb store the next command will resolve to, and why. Read-only, takes no session id, creates nothing. With --expect it exits non-zero on a mismatch, so a brief can require it before any mutating verb.

OptionDescription
--expect <dir>Assert the resolved store root equals this path; exit 1 if it does not
--jsonMachine-readable output
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh space

flint orbh space [options] [command]

Inspect and initialize Orb spaces

Subcommands: list, show, init.

flint orbh space list
flint orbh space list [options]

List spaces in the active Orb root

OptionDescription
--wideRender full-width table output without narrow stacking
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh space show
flint orbh space show [options] [id]

Show a space descriptor and spool count

ArgumentDescription
idSpace id (defaults to the resolved target space)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh space init
flint orbh space init [options] <basis> [id]

Initialize/register a space descriptor

ArgumentDescription
basisSpace basis: machine, user, or flint
idSpace id (defaults to local, $ORBH_USER_SPACE_ID, or flint)
OptionDescription
--syncMark the space as synced
--no-syncMark the space as not synced
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh station

flint orbh station [options] [command]

Create and manage durable Orbh stations

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: create, list, show, pause, resume, send, request, claim, respond-item, bind.

flint orbh station create
flint orbh station create [options] <name>

Create a durable station

ArgumentDescription
nameStation name
OptionDescription
--description <text>Station description
--workflow <text>Full hosted workflow text
--workflow-file <path>Read full hosted workflow text from a file
--mode <mode>Station mode: resident or oneshot
--agent <runtime/profile>Agent runtime/profile target
--jsonPrint the created station as JSON
flint orbh station list
flint orbh station list [options]

List stations

OptionDescription
--jsonPrint stations as JSON
flint orbh station show
flint orbh station show [options] <name>

Show a station

ArgumentDescription
nameStation name or id
OptionDescription
--jsonPrint the station as JSON
flint orbh station pause
flint orbh station pause [options] <name>

Pause a station

ArgumentDescription
nameStation name or id
OptionDescription
--jsonPrint the updated station as JSON
flint orbh station resume
flint orbh station resume [options] <name>

Resume a station

ArgumentDescription
nameStation name or id
OptionDescription
--jsonPrint the updated station as JSON
flint orbh station send
flint orbh station send [options] <name> [text]

Durably enqueue a one-way station item

ArgumentDescription
nameStation name or id
textPayload text. Give --text-file instead for a text that must not appear on a command line
OptionDescription
--text-file <path>Read the payload text from a file (UTF-8)
--from <text>The stated sender of the item, for example an entity address. Untrusted metadata, kept on the item as its requester
--jsonPrint the enqueued item as JSON
flint orbh station request
flint orbh station request [options] <name> <text>

Durably enqueue a request and wait for its station item answer

ArgumentDescription
nameStation name or id
textPayload text
OptionDescription
--timeout <seconds>Maximum wait while retaining the item (default: "600")
--jsonPrint newline-delimited request/result JSON
flint orbh station claim
flint orbh station claim [options] <name>

Claim an enqueued station item

ArgumentDescription
nameStation name or id
OptionDescription
--item <id>Specific station item id
--session <id>Claiming session id (defaults to ORBH_SESSION_ID)
--jsonPrint the claimed item as JSON
flint orbh station respond-item
flint orbh station respond-item [options] <name> <itemId> [answer]

Answer or fail a claimed station item

ArgumentDescription
nameStation name or id
itemIdStation item id
answerAnswer text (required unless --fail is used)
OptionDescription
--failFail the item instead of answering it
--reason <text>Failure reason (required with --fail)
--session <id>Responding session id (defaults to ORBH_SESSION_ID)
--forceOverride claimed-by identity check
--jsonPrint the completed item as JSON
flint orbh station bind
flint orbh station bind [options] <name> [sessionId]

Bind a station to a session, or release its binding

ArgumentDescription
nameStation name or id
sessionIdSession id
OptionDescription
--releaseRelease the current binding
--jsonPrint the updated station as JSON

flint orbh cron

flint orbh cron [options] [command]

Create and manage durable scheduled Orbh sessions

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
Schedules use minute-resolution, 5-field cron expressions.
The per-machine orchestrator checks schedules every 60 seconds and fires headless sessions; no server is required.

Subcommands: create, list, show, pause, resume, run-now, delete.

flint orbh cron create
flint orbh cron create [options] <name>

Create a cron schedule

ArgumentDescription
nameSchedule name
OptionDescription
--expr <cron>5-field cron expression
--prompt <text>Full prompt for each fired session
--target <runtime[/profile]>Agent runtime or runtime/profile target
--description <text>Schedule description
--timezone <iana>IANA timezone (default: machine local)
--misfire <policy>Misfire policy: coalesce or skip
--overlap <policy>Overlap policy: skip or allow
--jsonPrint the created schedule as JSON
flint orbh cron list
flint orbh cron list [options]

List cron schedules

OptionDescription
--jsonPrint schedules as JSON
--allInclude deleted schedules
flint orbh cron show
flint orbh cron show [options] <name>

Show a cron schedule

ArgumentDescription
nameSchedule name or id
OptionDescription
--jsonPrint the schedule as JSON
flint orbh cron pause
flint orbh cron pause [options] <name>

Pause a cron schedule

ArgumentDescription
nameSchedule name or id
flint orbh cron resume
flint orbh cron resume [options] <name>

Resume a cron schedule

ArgumentDescription
nameSchedule name or id
flint orbh cron run-now
flint orbh cron run-now [options] <name>

Request a fire on the next orchestrator sweep

ArgumentDescription
nameSchedule name or id
flint orbh cron delete
flint orbh cron delete [options] <name>

Delete a cron schedule (refuses a schedule that a module of the Flint desires)

ArgumentDescription
nameSchedule name or id

flint orbh move-spool

flint orbh move-spool [options] <spoolId>

Transfer a spool between spaces using an event bundle with restamped space ids

ArgumentDescription
spoolIdSpool id to transfer
OptionDescription
--from <spaceId>Source space id (default: "local")
--to <spaceId>Target space id
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh save

flint orbh save [options] [id]

Save a session's native transcript files into a portable bundle

ArgumentDescription
idOrbh session ID (full or partial; defaults to $ORBH_SESSION_ID)
OptionDescription
-o, --out <dir>Bundle output directory (default: <cwd>/.orbh/bundles/<runtime>-<native-id>)
--runtime <runtime>Treat <id> as a NATIVE session id of this runtime, bypassing the orbh session store
--cwd <dir>Working directory the session ran in (overrides the recorded one)
--no-recordWrite nothing to the session store: no blob, no event, no path of the bundle directory. The session stays byte for byte the same (a network transfer).
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh restore

flint orbh restore [options] <bundleDir>

Restore a saved session bundle into this machine's native harness storage

ArgumentDescription
bundleDirPath to a bundle directory (contains bundle.json)
OptionDescription
--cwd <dir>Destination working directory for the restored session (default: context root)
--forceOverwrite native session files that already exist
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh import

flint orbh import [options] <bundleDir>

Import a saved session bundle as a full Orbh session on this machine (same session id)

ArgumentDescription
bundleDirPath to a bundle directory (contains bundle.json with an orb/ spool bundle)
OptionDescription
--cwd <dir>Working directory the restored native files are keyed to (default: the bundle's recorded cwd when it exists here, else the context root)
--account <name>THIS-machine account the imported session runs under (default: same-name match against the session's pinned account)
--forceReplace an existing spool with the same id, and overwrite differing native files; refuses a session with a running run or a live manager (end the run first)
--servers-confirmed <note>Below writer epoch 2, confirm with a note that no process outside the registries (Flint servers, Orbh servers, collectors) of an older build runs; a --force import over an existing spool needs it
--checkWrite nothing: print the session id, whether it exists here, and every native file the import would write with its current existence
--jsonWith --check: print the check as JSON
--no-record-pathsRecord no path of this machine (the bundle directory, the store root) in the transfer record of the imported session (a network transfer)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh runtimes

flint orbh runtimes [options]

List discovered Orbh runtimes and their executable details

OptionDescription
--wideRender full-width table output without narrow stacking

flint orbh profiles

flint orbh profiles [options] [command] [target]

Inspect and sync Orbh runtime profiles

ArgumentDescription
targetOptional runtime or runtime/name target
OptionDescription
--wideRender full-width table output without narrow stacking

Subcommands: switch, default, update, push.

flint orbh profiles switch
flint orbh profiles switch [options] <target>

Move THIS session onto another profile of the SAME runtime, keeping its conversation. The run is closed at a turn boundary and the same native context resumes under the new model/effort. An interactive pane swaps its child in place; a headless session immediately relaunches a same-spool continuation. Cross-runtime is not possible here — use compact handoff --into for that.

ArgumentDescription
targetDestination profile registry key (<runtime>/<profile>, same runtime as this session)
flint orbh profiles default
flint orbh profiles default [options] [command]

Show the default target list: the layer of each entry, the state of each target, and the target that a launch with no target selects

OptionDescription
--jsonPrint one JSON envelope on stdout
-p, --path <dir>Path to flint (default: auto-detect)

Subcommands: set, unset.

flint orbh profiles default set
flint orbh profiles default set [options] <targets...>

Write the machine layer of the default target list (the key defaultTargets in the Orbh machine settings file); --flint writes the Flint layer

ArgumentDescription
targetsOne or more runtime/profile targets, in order (for example claude/o55h codex/a6h)
OptionDescription
--flintAct on the Flint layer ([orbh] default in the flint.toml of this Flint) instead of the machine layer
--jsonPrint one JSON envelope on stdout
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh profiles default unset
flint orbh profiles default unset [options]

Remove the machine layer of the default target list; --flint removes the Flint layer. The output names the layer that applies then

OptionDescription
--flintAct on the Flint layer ([orbh] default in the flint.toml of this Flint) instead of the machine layer
--jsonPrint one JSON envelope on stdout
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh profiles update
flint orbh profiles update [options]

Pull the latest shared default profiles into ~/.nuucognition/orbh/default.json (leaves your profiles.json untouched)

flint orbh profiles push
flint orbh profiles push [options]

Publish your local default.json to the shared profiles repo (maintainers)

OptionDescription
-m, --message <message>Commit message

flint orbh auth

flint orbh auth [options] [command]

Manage isolated harness login accounts

Subcommands: migrate, fallback, add, account, list, default, rename, remove, deactivate, reactivate, manual-only, usage, refresh, ccusage.

flint orbh auth migrate
flint orbh auth migrate [options] [account]

Move a session to another account of the same runtime (default: THIS session; pass --session for another): its conversation files are MOVED to the new account home and the durable account is flipped. An interactive pane resumes the same context there; a headless session has a live turn KILLED at a run boundary (that turn is lost, the conversation is not) and comes up on the new account at its next wake. Nothing but the session travels — memory, config, and credentials stay with the old account. With --release-claim (no account): clear a migration claim that a failed release or a stuck migration left, after a check that no migration can still change files; the files are settled first.

ArgumentDescription
accountDestination account name (same runtime as the session); not used with --release-claim
OptionDescription
--session <id>Session to migrate (full or partial ID); defaults to ORBH_SESSION_ID, the session that runs this command
--forceMigrate even when the destination account has no usable credentials
--release-claimClear a stuck migration claim of the session; refuses while its migration can still run
flint orbh auth fallback
flint orbh auth fallback [options] [command]

The account autoswitch: an ordered fallback list of accounts for each runtime. A new headless launch whose account is in the list and limited (a usage-limit marker, or a fresh usage snapshot window at or above the switch percent) uses the first good account of the list, and prints one notice. Only with the separate opt-in settings --auto-migrate on (default off), the orchestrator also moves a headless session whose turn stopped on a provider limit to a good account of the list, between turns; that move uses the migration primitive of auth migrate, which still has open races. With no list, Orbh never switches. Orbh never chooses an account outside the list, and never switches an interactive launch or session.

Subcommands: show, set, unset, check, settings.

flint orbh auth fallback show
flint orbh auth fallback show [options] [runtime]

Show the fallback lists, the switch percent, the refresh interval, and the state of each listed account. Writes nothing

ArgumentDescription
runtimeShow only this runtime
OptionDescription
--jsonPrint the config and the account states as JSON
flint orbh auth fallback set
flint orbh auth fallback set [options] <runtime> <accounts...>

Set the ordered fallback list of one runtime. Each account must exist. The list replaces the old list of that runtime

ArgumentDescription
runtimeHarness runtime, for example claude
accountsAccount names in the order to try them
flint orbh auth fallback unset
flint orbh auth fallback unset [options] <runtime>

Remove the fallback list of one runtime. Then Orbh never switches an account of that runtime

ArgumentDescription
runtimeHarness runtime
flint orbh auth fallback check
flint orbh auth fallback check [options] <runtime>

Dry run: show which account a new headless launch of this runtime uses now, and why. Writes nothing

ArgumentDescription
runtimeHarness runtime
OptionDescription
--account <name>The --account of the launch (default: the default account here)
--allow-switchThe --allow-switch of the launch: an explicit --account may switch
--allow-manual-onlyThe --allow-manual-only of the launch: --account may name a manual-only account
--model <model>The model of the launch, for the model windows and the model markers
--jsonPrint the decision as JSON
flint orbh auth fallback settings
flint orbh auth fallback settings [options]

Show or set the switch percent, the usage refresh interval, and the automatic move (for all runtimes)

OptionDescription
--percent <n>Switch percent, above 0 and at most 100, or 'default' (90)
--auto-migrate <on|off|default>The automatic move of a headless session that stopped on a limit (default off)
--refresh-minutes <n>Refresh interval of the usage snapshots of the listed accounts in minutes; 0 turns the refresh off; or 'default' (5)
flint orbh auth add
flint orbh auth add [options] <runtime> <name>

Create an isolated account home and run the harness login flow

ArgumentDescription
runtimeHarness runtime
nameAccount name ([a-z0-9_-]+)
OptionDescription
--no-loginCreate the account directory without opening the harness login flow
--reuse-removed-nameReuse a removed account name. Sessions for the removed account still cannot resume.
flint orbh auth account
flint orbh auth account [options] <runtime> <name> [args...]

Run the harness CLI under an isolated account home — general arg passthrough to the runtime executable

ArgumentDescription
runtimeHarness runtime
nameAccount name (must already exist)
argsArguments forwarded to the harness executable (e.g. login --device-auth)
OptionDescription
--dry-runPrint env and command without running the harness
Sets the runtime account-home env var (CODEX_HOME, CLAUDE_CONFIG_DIR, …) to the
named Orbh account directory, then execs the harness binary with the remaining
args unchanged. Use this for login variants, status, logout, or any other CLI
subcommand that should touch only that account's credentials and state.

The account must already exist (create with `auth add <runtime> <name> [--no-login]`).

Examples:
  flint orbh auth account codex nathan-gmail login
  flint orbh auth account codex nathan-gmail login --device-auth
  flint orbh auth account codex nathan-gmail login status
  flint orbh auth account claude nuu /logout
  flint orbh auth account codex nathan-gmail --dry-run login --device-auth
flint orbh auth list
flint orbh auth list [options] [runtime]

List configured harness accounts (a deactivated account is hidden unless --all)

ArgumentDescription
runtimeOptional harness runtime
OptionDescription
--allList every known account, also each deactivated account, with its state
flint orbh auth default
flint orbh auth default [options] <runtime> [name]

Set or clear a default account (Flint-local when inside a Flint; machine-global otherwise)

ArgumentDescription
runtimeHarness runtime
nameAccount name
OptionDescription
--clearClear the default account at the active scope
--globalOperate on the machine-global default even inside a Flint
flint orbh auth rename
flint orbh auth rename [options] <runtime> <old-name> <new-name>

Rename an isolated account home and preserve existing session paths

ArgumentDescription
runtimeHarness runtime
old-nameCurrent account name
new-nameNew account name
flint orbh auth remove
flint orbh auth remove [options] <runtime> <name>

Remove an isolated account home

ArgumentDescription
runtimeHarness runtime
nameAccount name
OptionDescription
--yesRemove without prompting
flint orbh auth deactivate
flint orbh auth deactivate [options] <runtime> <name>

Hide an account whose subscription lapsed: the account views hide it and a new launch refuses it. Its home, credentials, and sessions stay; resume still works

ArgumentDescription
runtimeHarness runtime
nameAccount name
flint orbh auth reactivate
flint orbh auth reactivate [options] <runtime> <name>

Return a deactivated account to the account views and to new launches

ArgumentDescription
runtimeHarness runtime
nameAccount name
flint orbh auth manual-only
flint orbh auth manual-only [options] <runtime> <name> <state>

Mark an account that only a person uses (a work account), or clear the mark. Orbh then sends it no usage request unless a command names it, keeps it out of every fallback list and default, never moves a session to it, and a launch names it only with --account <name> --allow-manual-only

ArgumentDescription
runtimeHarness runtime
nameAccount name
stateon or off
flint orbh auth usage
flint orbh auth usage [options] [runtime] [name]

Report live quota / rate-limit windows per account. It reads the providers and updates the usage cache of each account

ArgumentDescription
runtimeOptional harness runtime
nameOptional account name
OptionDescription
--jsonEmit the normalized usage rows as JSON
flint orbh auth refresh
flint orbh auth refresh [options] [runtime] [name]

Re-authenticate accounts whose access token has expired by launching one throwaway session under each

ArgumentDescription
runtimeOptional harness runtime
nameOptional account name
OptionDescription
--jsonEmit the refresh outcomes as JSON
--dry-runList the accounts that would be refreshed without launching anything
A `needs-reauth` account is almost never actually logged out — its stored access
token has simply expired, and the harness CLI refreshes it from the refresh token
the moment a session launches under that account. This command automates exactly
that: one minimal ping per stale account, then a re-check.

Success is the post-ping usage result, not the ping exit status. The refresh lands
at launch, before any inference, so a ping that fails to return its result has
still done the job.

Examples:
  flint orbh auth refresh
  flint orbh auth refresh claude
  flint orbh auth refresh claude nuucognition
  flint orbh auth refresh --dry-run
flint orbh auth ccusage
flint orbh auth ccusage [options] [args...]

Run ccusage against Orbh account homes; add a runtime vanilla home only when that runtime has no named account

ArgumentDescription
argsArguments passed to ccusage (default: daily)
OptionDescription
--dry-runPrint the env and command without running ccusage
Aggregates registered account homes under ~/.nuucognition/orbh/accounts
(or ORBH_ACCOUNTS_DIR) into ccusage multi-directory env vars
(comma-separated, no spaces). A runtime with no named account also
contributes its vanilla CLI home:
  CLAUDE_CONFIG_DIR  ← claude accounts, or ~/.claude (+ ~/.config/claude) if none
  CODEX_HOME         ← codex accounts, or ~/.codex if none
  GROK_HOME          ← grok accounts, or ~/.grok if none
  …                 ← any other harness accountHomeEnvVar + resolveDefaultHome

Vanilla homes are omitted for any runtime that already has a named account.
Launch with --account none still uses the vanilla home; list and usage do not
show it once named accounts exist.

Claude reports use temporary copies to support nullable iteration models.
The original transcripts stay unchanged. Temporary copies are removed after the report.

ccusage has no Muse support, so Orbh reads the Muse session logs itself
($XDG_DATA_HOME/muse, else ~/.local/share/muse). After the ccusage table of
daily, weekly, monthly, or session (and each --sections report), Orbh prints a
Muse table for the same periods; --since, --until, --timezone, --last, and --id
apply to it. With --json, the Muse rows go under the top-level key
"orbhAgents", and the ccusage keys stay unchanged. The Muse cost is
unknown (— or null). blocks, statusline, and one-agent reports get no Muse rows.
"auth ccusage muse [daily|weekly|monthly|session]" prints the Muse report alone.

Examples:
  flint orbh auth ccusage
  flint orbh auth ccusage monthly
  flint orbh auth ccusage daily --json
  flint orbh auth ccusage muse weekly
  flint orbh auth ccusage --dry-run

flint orbh claude

flint orbh claude [options] [command]

Claude-specific native session operations

Subcommands: doctor, config, list.

flint orbh claude doctor
flint orbh claude doctor [options]

Check every Claude config home (user + accounts) against the managed settings policy

OptionDescription
--jsonOutput the inspection as JSON
--wideRender full-width table output without narrow stacking
flint orbh claude config
flint orbh claude config [options] [command]

Inspect and reconcile managed Claude settings across every config home

Subcommands: diff, apply, update.

flint orbh claude config diff
flint orbh claude config diff [options]

Compare every Claude home with the managed policy; exits 1 on drift

OptionDescription
--jsonOutput the inspection as JSON
--wideRender full-width table output without narrow stacking
flint orbh claude config apply
flint orbh claude config apply [options]

Write the managed settings into every Claude home (or one account / path)

OptionDescription
--account <name>Only the named Claude account (or "user" for ~/.claude)
--home <path>Only this config directory
--dry-runReport what would change without writing
--forceRefresh provenance even when nothing changed and replace an unreadable settings.json (backed up first)
--jsonOutput the apply results as JSON
flint orbh claude config update
flint orbh claude config update [options]

Bring every Claude home up to date in one go: force-apply the managed settings to all homes, then show doctor

OptionDescription
--no-forceOnly touch homes that drift; leave unreadable settings.json alone
--dry-runReport what would change without writing
--jsonOutput the apply results and the post-update inspection as JSON
--wideRender full-width table output without narrow stacking
flint orbh claude list
flint orbh claude list [options]

List native Claude sessions on disk and map them to tracked Orbh sessions

OptionDescription
--jsonOutput the mapping as JSON
-u, --untrackedShow only native sessions with no tracked Orbh session
-i, --interactivePick a native session and act (reimport, watch, inspect, …)
--wideRender full-width table output without narrow stacking
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh heal

flint orbh heal [options]

Repair Orbh Data Layer conformance violations (C1-C14)

OptionDescription
--dry-runShow what would be repaired without writing
--include-syncedAllow rewrites in synced/flint-tier spaces
--allow-adapter-stripDelete adapter data heal cannot re-fold instead of refusing those spools
--servers-confirmed <note>Below writer epoch 2, confirm with a note that no process outside the registries (Flint servers, Orbh servers, collectors) of an older build runs; a heal that rewrites a log needs it
--jsonPrint a machine-readable heal report
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh verify

flint orbh verify [options] [sessionId]

Verify Orbh Data Layer conformance (C1-C14)

OptionDescription
--jsonPrint a machine-readable conformance report
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh verify-sessions

flint orbh verify-sessions [options]

Deprecated alias for verify

OptionDescription
--jsonPrint a machine-readable conformance report
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh rebuild-session-snapshots

flint orbh rebuild-session-snapshots [options] [sessionId]

Re-stamp the per-session projection in each spool's ext.orbh from canonical Orb session-control events

ArgumentDescription
sessionIdRebuild only this session's spool (full id or unambiguous prefix); default: every spool in scope
OptionDescription
--dry-runReport which spools would change, and on which keys, without stamping
--jsonPrint a machine-readable rebuild report
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh rebuild

flint orbh rebuild|reset [options]

Destroy this flint's derived Orb transcript events and rebuild them from the native agent transcripts. Alias: reset.

OptionDescription
--jsonPrint a machine-readable rebuild report
--dry-runPreview only: print what would be wiped/rebuilt and change nothing
--yesActually perform the destructive wipe + rebuild (required; otherwise previews)
--forceAlias of --yes
--cwd <dir>Override the working directory used to resolve the target flint
--runtime <name>Only rebuild sessions of this runtime
--session <id>Only rebuild this session
--servers-confirmed <note>Below writer epoch 2, confirm with a note that no process outside the registries (Flint servers, Orbh servers, collectors) of an older build runs; the rebuild needs it
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh orchestrator

flint orbh orchestrator|orch [options] [command]

Inspect and control the per-machine Orbh orchestrator (supervises managers; reaps ungraceful deaths)

Subcommands: status, managers, processes, launcher, ensure, stop, restart, reap.

flint orbh orchestrator status
flint orbh orchestrator status [options]

Show the per-machine orchestrator singleton + supervised manager roster

OptionDescription
--jsonOutput machine-readable JSON
flint orbh orchestrator managers
flint orbh orchestrator managers|ls [options]

List managers in the orchestrator registry

OptionDescription
--allInclude dead/stale registry entries (default: live only)
-i, --interactivePick a live manager and attach / detach / kill it (requires a TTY)
--jsonOutput machine-readable JSON
--wideRender full-width table output without narrow stacking
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh orchestrator processes
flint orbh orchestrator processes|ps [options]

List the machine-wide Orbh auxiliary-process registry and report unregistered ghosts

OptionDescription
--jsonOutput machine-readable JSON
--wideRender full-width table output without narrow stacking
--staleShow only live processes that started before the current build
flint orbh orchestrator launcher
flint orbh orchestrator launcher [options] [command]

Inspect and declare the machine-canonical launcher that auxiliary processes are spawned through

Subcommands: show, adopt, clear.

flint orbh orchestrator launcher show
flint orbh orchestrator launcher show [options]

Show the canonical launcher record, whether it still exists, and this process's own code identity

OptionDescription
--jsonOutput machine-readable JSON
flint orbh orchestrator launcher adopt
flint orbh orchestrator launcher adopt [options]

Record the machine-canonical launcher (defaults to the launcher this invocation is running through)

OptionDescription
--path <launcher>Adopt this launcher script instead of the current invocation's
--kind <kind>Force the launcher kind (flint|orbh) when it cannot be inferred
--if-absentNo-op when a record already exists, so an automated caller can never steal the machine record
--jsonOutput machine-readable JSON
flint orbh orchestrator launcher clear
flint orbh orchestrator launcher clear [options]

Remove the canonical launcher record, restoring caller inference

OptionDescription
--jsonOutput machine-readable JSON
flint orbh orchestrator ensure
flint orbh orchestrator ensure|start [options]

Ensure the per-machine orchestrator singleton is running (lazily spawns it if down)

flint orbh orchestrator stop
flint orbh orchestrator stop [options]

Stop the per-machine orchestrator singleton between ticks (it is re-ensured on the next interactive launch)

flint orbh orchestrator restart
flint orbh orchestrator restart [options]

Restart the per-machine orchestrator between ticks onto the build of this CLI (a hand-off: the new process loads first)

flint orbh orchestrator reap
flint orbh orchestrator reap [options]

Reap dead managers now (remove stale registry entries + signal orphaned runtime groups)

OptionDescription
--jsonOutput machine-readable JSON

flint orbh server

flint orbh server [options] [command]

Standalone orbh server management

Subcommands: start, stop, status.

flint orbh server start
flint orbh server start [options]

Start the standalone orbh HTTP/SSE server

OptionDescription
--host <host>Server host (default: 127.0.0.1)
--port <port>Server port (default: 13041, use 0 for dynamic)
--orb-store-dir <path>Override the Orb store directory (.orb)
--config <path>Path to orbh.toml
--daemonDetach and keep the server running in the background
flint orbh server stop
flint orbh server stop [options]

Stop the standalone orbh server daemon

OptionDescription
--host <host>Server host override
--port <port>Server port override
--orb-store-dir <path>Override the Orb store directory (.orb)
--config <path>Path to orbh.toml
flint orbh server status
flint orbh server status [options]

Show standalone orbh server status

OptionDescription
--host <host>Server host override
--port <port>Server port override
--orb-store-dir <path>Override the Orb store directory (.orb)
--config <path>Path to orbh.toml

flint orbh archive

flint orbh archive [options] [command]

Move old terminal session spools out of the hot path (and back)

Subcommands: run, restore, list.

flint orbh archive run
flint orbh archive run [options]

Archive terminal session spools older than the age gate (default 7 days)

OptionDescription
--dry-runReport the would-be moves without renaming anything
--older-than-days <days>Override the age gate in days
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh archive restore
flint orbh archive restore [options] <sessionId>

Move one session's archived spool back into the live store

ArgumentDescription
sessionIdThe session id whose spool should return to spaces/
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh archive list
flint orbh archive list [options]

List the sessions currently held in the archive tier

OptionDescription
--jsonPrint a machine-readable listing
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh reconcile

flint orbh reconcile [options]

Mark this machine's dead working sessions abandoned, and end stale runs of abandoned sessions (run.ended endReason:lost via the event path)

OptionDescription
--allSweep every discovered scope (registered flints + ~/.orb) instead of the current one
--dry-runReport stale sessions without writing anything
--grace <seconds>Skip running runs younger than this (default 60)
--jsonPrint a machine-readable sweep report
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh interrupt

flint orbh interrupt [options] <targetId> <text...>

Interrupt a working headless session with a message digest

ArgumentDescription
targetIdTarget session ID (full or partial)
textInterrupt message text
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh page

flint orbh page [options] [command] [id]

Render this session's introspection Page (core + shard functions). Self-targets via ORBH_SESSION_ID.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--rawPrint each function's output labeled by id (operators/debugging)
--no-mutateRun functions read-only where supported (do not drain inbox, bump counters, etc.)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: run, arm, status, recover.

flint orbh page run
flint orbh page run [options] <ref> [args...]

Invoke one Page function on demand: page run <source>/<name> [args…]

ArgumentDescription
refFunction id as <source>/<name> (e.g. core/header)
argsArguments passed to the function
OptionDescription
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
--no-mutateRun the function read-only where supported
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh page arm
flint orbh page arm [options] [id]

Agent-facing long-poll pager for this session; run it in the background.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set.
OptionDescription
--max-wait <seconds>Maximum wait before a heartbeat render. Omit to wait indefinitely.
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh page status
flint orbh page status [options] [id]

Inspect the pager process and compaction hold without consuming events. An armed process does not prove agent notification.

ArgumentDescription
idSession ID. Defaults to ORBH_SESSION_ID.
OptionDescription
--jsonPrint the status as JSON.
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh page recover
flint orbh page recover [options] <event-id>

Inspect an uncertain event. Acknowledge it only after you handle its captured Page.

ArgumentDescription
event-idExact event ID from page status.
OptionDescription
--session <id>Session ID. Defaults to ORBH_SESSION_ID.
--acknowledgeRecord operator receipt and advance this Page. Do not resend it.
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh job

flint orbh job [options] [command]

Run and inspect background jobs for this session (rendered by core/jobs). Self-targets via ORBH_SESSION_ID.

Subcommands: run, complete, list, show, result, wait, cancel, clear.

flint orbh job run
flint orbh job run [options] <command>

Run a shell command — or a subagent dispatch with --agent — as a background job (inherits the terminal env)

ArgumentDescription
commandShell command to run in the background (with --agent: the subagent prompt)
OptionDescription
--group <g>Job group name — the join key for park --until-group
--agent <target>Dispatch a subagent instead: <target> is a runtime/profile (e.g. codex/55xh) and the positional argument is its prompt
--account <name>Harness account for --agent, or 'none' to bypass the runtime default
--title <title>With --agent: pre-set the title of the child session
--description <description>With --agent: pre-set the description of the child session
--application <name>With --agent: Tag the session with the launching application (also read from ORBH_APPLICATION); tagged sessions are hidden from list, active, and the cockpit by default
--output-schema <schema>With --agent: JSON Schema (a file path, or inline JSON) that each return of the child must match; job result --json prints the structured value
--timeout <seconds>Mark the job failed (timeout) and SIGTERM its process group after this many seconds
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job complete
flint orbh job complete [options] <id>

Record a job's terminal status (used by the background wrapper)

ArgumentDescription
idJob id
OptionDescription
--exit <code>Exit code
--output-file <path>Override the file holding the job's captured output (defaults to the job's recorded outputPath)
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job list
flint orbh job list [options]

List this session's jobs (also reaps dead-wrapper and timed-out jobs)

OptionDescription
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job show
flint orbh job show [options] <id>

Print the whole record of one job: id, kind, status, group, target, times, exit, reason, output path, and the full prompt or command

ArgumentDescription
idJob id (full or unique prefix)
OptionDescription
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job result
flint orbh job result [options] <id>

Print a job's full captured output (works on running jobs too — output streams into the file)

ArgumentDescription
idJob id (full or unique prefix)
OptionDescription
--jsonPrint the job as JSON: id, status, kind, childSessionId, output, and structured (present when the child's return matched an output schema)
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job wait
flint orbh job wait [options] <id>

Block until a job reaches a terminal state, then print its full output. Exit 0 when done, 1 when failed. Reaps dead-wrapper/timed-out jobs while polling, so a wait can never hang on a job that will never report.

ArgumentDescription
idJob id (full or unique prefix)
OptionDescription
--poll <ms>Polling interval in milliseconds (default 1000)
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job cancel
flint orbh job cancel [options] <id>

Cancel one running job, remove its process registration, and delete its retained output

ArgumentDescription
idJob id (full or unique prefix)
OptionDescription
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh job clear
flint orbh job clear [options]

Remove terminal (done/failed) jobs from the Page and delete their retained outputs

OptionDescription
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh usage

flint orbh usage [options] [id]

Show the token usage and cost of a session, its dispatch tree, or a declared fleet. Self-targets via ORBH_SESSION_ID.

ArgumentDescription
idSession ID (full or partial). Optional when ORBH_SESSION_ID is set or --fleet is given.
OptionDescription
--treeAlso sum the session and every descendant (archived and discarded included)
--fleet <handle>Sum the members of a declared fleet
--runs <n>How many run facts to print (default 10)
--jsonPrint a machine-readable object
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh room

flint orbh room [options] [command]

Create, join, read, and update Orbh rooms

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: create, list, read, join, leave, post, context.

flint orbh room create
flint orbh room create [options] <name>

Create a durable room

ArgumentDescription
nameRoom name
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
--topic <topic>One-line room topic
flint orbh room list
flint orbh room list [options]

List rooms

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
--wideRender full-width table output without narrow stacking
--jsonPrint rooms as stable JSON
flint orbh room read
flint orbh room read [options] <room>

Read a room stream and context

ArgumentDescription
roomRoom name or id
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
--since-cursorRender messages after this session subscription cursor
--no-advanceDo not advance this session subscription cursors
flint orbh room join
flint orbh room join [options] <room>

Join a room from this session

ArgumentDescription
roomRoom name or id
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
--notify <policy>Notification policy: mentions (default), all, or mute
flint orbh room leave
flint orbh room leave [options] <room>

Leave a room from this session

ArgumentDescription
roomRoom name or id
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh room post
flint orbh room post [options] <room> <text...>

Post a message to a room

ArgumentDescription
roomRoom name or id
textMessage text
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh room context
flint orbh room context [options] [command]

Read and update a room context library

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: show, append, edit.

flint orbh room context show
flint orbh room context show [options] <room>

Show a room context library

ArgumentDescription
roomRoom name or id
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh room context append
flint orbh room context append [options] <room> <text...>

Append text to a room context library

ArgumentDescription
roomRoom name or id
textText to append
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh room context edit
flint orbh room context edit [options] <room>

Replace exactly one snippet in a room context library

ArgumentDescription
roomRoom name or id
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
--search <old>Snippet to replace
--replace <new>Replacement text

flint orbh fleet

flint orbh fleet [options] [command]

Declare and manage fleets: a named group of sessions that acts under one name and one charter

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
A fleet is one spool in the flint Orb space of the Flint. Its handle is unique for all time.
A child of a member inherits the fleet at launch. A peer or a station joins with fleet join.
fleet close does not stop a session.

Subcommands: declare, show, list, updates, join, leave, set, close.

flint orbh fleet declare
flint orbh fleet declare [options] <handle>

Declare a fleet. The caller session becomes the root, unless --root names a session

ArgumentDescription
handleFleet handle: 2 to 32 characters, lower case, digits, and hyphens
OptionDescription
--name <name>Display name (default: the handle in Title Case)
--charter <text>The goal, the boundary, and the done condition, in 1 to 5 sentences
--charter-file <path>Read the charter from a file
--charter-ref <ref>Mesh path or wikilink of the source of the charter
--root <sessionId>The root session (default: ORBH_SESSION_ID)
--room <room>The room of the fleet
--avatar <url>Public image URL for the Discord webhook post
--max-members <n>Advisory member limit
--budget <usd>Advisory budget in USD
--deadline <iso|+duration>Advisory deadline
--no-backfillDo not stamp the present dispatch tree under the root
--backfill-onlyDo not declare: stamp the root and each unstamped session under the root of the open fleet
--jsonPrint the result as JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet show
flint orbh fleet show [options] [handle]

Show a fleet (default: the fleet of this session)

ArgumentDescription
handleFleet handle or id
OptionDescription
--membersList the members
--jsonPrint the fleet as JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet list
flint orbh fleet list [options]

List open fleets

OptionDescription
--allInclude closed and abandoned fleets
--jsonPrint the fleets as JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet updates
flint orbh fleet updates [options] [handle]

The feed of a fleet: the updates of all its members in time order (default: the fleet of this session)

ArgumentDescription
handleFleet handle
OptionDescription
--limit <n>Most recent entries to show (default 50)
--jsonPrint the feed as JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet join
flint orbh fleet join [options] <handle>

Join a session (default: this session) or a station to an open fleet

ArgumentDescription
handleFleet handle or id
OptionDescription
--session <id>The session that joins
--station <name>The station that joins
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet leave
flint orbh fleet leave [options]

Leave the fleet of a session (default: this session) or of a station

OptionDescription
--session <id>The session that leaves
--station <name>The station that leaves
--reason <why>Why the member leaves
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet set
flint orbh fleet set [options] <handle> <field> [value...]

Change a field of an open fleet: name|charter|charter-ref|room|avatar|limits

ArgumentDescription
handleFleet handle or id
fieldname|charter|charter-ref|room|avatar|limits
valueThe new value; none clears an optional field. limits: max-members=<n> budget=<usd> deadline=<iso|+duration>
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh fleet close
flint orbh fleet close [options] [handleOrOutcome] [outcome]

Close a fleet with an outcome (default: the fleet of this session). It does not stop a session

ArgumentDescription
handleOrOutcomeFleet handle, or the outcome when one argument is given
outcomeThe outcome
OptionDescription
--report <path>Mesh path of the report
--abandonMark the fleet abandoned instead of closed
--forceClose with working members, or from a session that is not the root
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh actor

flint orbh actor [options] [command]

The actor of an act now: fleet, agent, session, or person

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

Subcommands: show.

flint orbh actor show
flint orbh actor show [options]

Print who speaks for an act of a session now (default: this session), with via and principal

OptionDescription
--session <id>The session of the act
--jsonPrint the actor as JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh stream

flint orbh stream [options] [command]

Durable stream ownership, dispatch state, and recovery.

Subcommands: list, inspect, bind, configure, policy, owner, reconcile, recover.

flint orbh stream list
flint orbh stream list [options]

List streams and their derived activity.

OptionDescription
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream inspect
flint orbh stream inspect [options] <id>
OptionDescription
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream bind
flint orbh stream bind [options]

Bind an existing Path UUID. This does not launch work.

OptionDescription
--on <name>Existing Path name
--goal <text>Goal of this stream
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream configure
flint orbh stream configure [options] <id>
OptionDescription
--goal <text>Goal
--write-scopes <json>Nonempty JSON array of file or directory scopes, relative to the workspace
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream policy
flint orbh stream policy [options] <id> <policy>
ArgumentDescription
id
policyopen, paused, or closed
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream owner
flint orbh stream owner [options] <id> <session>
ArgumentDescription
id
sessionSession UUID, self, or none
OptionDescription
--expected <session>Current owner UUID, or none
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream reconcile
flint orbh stream reconcile [options] <id>

Collect the correlated result and verify its Mesh landing.

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh stream recover
flint orbh stream recover [options] <id>
OptionDescription
--generation <n>Expected active generation
--reason <text>Why this failed or cancelled attempt can be released
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh agent

flint orbh agent [options] [command]

Create and manage durable orb agents (orba) — named entities backed by a long-lived session

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
An orb agent owns a scope of responsibility and persists across sessions.
Its identity lives in its markdown mind — `<home>/(Orb Agent) <name>.md`, whose
frontmatter carries agent/home/target/account/scope/description. Edit an agent by
editing that file; a moved mind folder self-heals on the next read. The only two
writes with verbs are the launch facts, because each does more than the edit:
`agent profile` validates the target against the profile registry, and
`agent migrate` also moves a live interactive body into the new account.
Its backing headless session is a replaceable body: `agent wake` launches one
on first use and relaunches it if the previous body ended.
Address a live agent with `flint orbh message send agent:<name> "<text>"`.

Subcommands: create, list, show, page, wake, switch, pause, resume, retire, profile, migrate, discord.

flint orbh agent create
flint orbh agent create [options] <name>

Register a durable orb agent against the markdown mind that claims its name

ArgumentDescription
nameAgent name (globally unique in this Flint, case-insensitive)
OptionDescription
--home <path>Mesh folder holding the agent's mind (default: discovered by scan)
--jsonPrint the registered agent as JSON
flint orbh agent list
flint orbh agent list [options]

List orb agents with state, scope, backing session, and wake schedule

OptionDescription
--jsonPrint agents as JSON
--allInclude retired agents
flint orbh agent show
flint orbh agent show [options] <name>

Show one orb agent in full

ArgumentDescription
nameAgent name or id
OptionDescription
--jsonPrint the agent as JSON
flint orbh agent page
flint orbh agent page [options] <name>

Render an agent's Page: identity header, backing session Page, and live subagents

ArgumentDescription
nameAgent name or id
flint orbh agent wake
flint orbh agent wake [options] <name> [reason...]

Wake an orb agent: launch its backing session, or wake the living one

ArgumentDescription
nameAgent name or id
reasonWhy it is being woken
OptionDescription
--jsonPrint the wake outcome as JSON
flint orbh agent switch
flint orbh agent switch [options] <name> <mode>

Switch an orb agent's live body between interactive and headless mode

ArgumentDescription
nameAgent name or id
modeTarget mode (interactive|headless)
OptionDescription
--forceAdopt despite a live collector (interactive only)
--hereAttach this terminal to the relaunched body (interactive only)
--no-launchFlip without starting an interactive pane (interactive only)
--awaitLand awaiting instead of auto-resuming (headless only)
--resume <prompt>Append a prompt to the restored headless turn (headless only)
flint orbh agent pause
flint orbh agent pause [options] <name>

Pause an orb agent (all wakes are held at delivery until resumed)

ArgumentDescription
nameAgent name or id
flint orbh agent resume
flint orbh agent resume [options] <name>

Resume a paused orb agent

ArgumentDescription
nameAgent name or id
flint orbh agent retire
flint orbh agent retire [options] <name>

Retire an orb agent (tombstone; the name stays reserved)

ArgumentDescription
nameAgent name or id
flint orbh agent profile
flint orbh agent profile [options] <name> [target]

Show or set the runtime/profile an orb agent's body launches under. Setting it writes target: in the agent's mind and, when the body can take it, switches that live body onto the new profile too — keeping its conversation. Cross-runtime targets only ever reach the next body.

ArgumentDescription
nameAgent name or id
targetTarget to set (<runtime> or <runtime>/<profile>); omit to show the current one
OptionDescription
--mind-onlyWrite the declaration and leave the live body on its current profile
flint orbh agent migrate
flint orbh agent migrate [options] <name> <account>

Move an orb agent to another harness account of the same runtime. Writes account: in the agent's mind, and when its body is a live interactive pane, moves that running conversation into the new account too.

ArgumentDescription
nameAgent name or id
accountDestination account name (same runtime as the agent)
OptionDescription
--forceMigrate even when the destination account has no usable credentials
--mind-onlyWrite the declaration and leave the live body on its current account
flint orbh agent discord
flint orbh agent discord [options] [command]

Per-agent Discord identities: bots whose messages land in the agent's session inbox

Subcommands: setup, show, status, start, stop, routing.

flint orbh agent discord setup
flint orbh agent discord setup [options]

Add or update one agent's Discord identity in the machine-level config

OptionDescription
--agent <name>Orb agent name the bot belongs to
--token <token>Discord bot token (prefer --token-stdin)
--token-stdinRead the Discord bot token from stdin
--server <id>Home guild id (guild messages from other servers never qualify)
--channel <id>Default/home channel id (watched without an @-mention)
--worker-channel <id>Channel worker threads open under (default: the home channel)
--approval-forum <id>Forum channel this agent files its own approvals into (never created; omit = native-only)
--allow <ids>Comma-separated allowlisted Discord user ids
--updates <mode>Updates-mirror verbosity for this agent: 'all' (default) or 'mute'
--scope <dir>Flint cwd owning the agent (defaults to the current Flint; must already contain .orb)
--removeRemove this agent's entry instead of adding one
--enableEnable the bridge
--disableDisable the bridge (the running process exits on its own)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh agent discord show
flint orbh agent discord show [options]

Show the agent-discord config (tokens redacted)

flint orbh agent discord status
flint orbh agent discord status [options]

Show bridge process state alongside the config

flint orbh agent discord start
flint orbh agent discord start [options]

Ensure the bridge process is running (idempotent; the orchestrator also repairs it)

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh agent discord stop
flint orbh agent discord stop [options]

Stop the bridge process and release its lease

flint orbh agent discord routing
flint orbh agent discord routing [options]

Show the inbound routing record: which consumer claimed each inbound Discord event, and why

OptionDescription
--since <iso>Only events first decided at or after this ISO instant
--hours <n>Only events from the last N hours
--event <id>One Discord message id
--double-claimedOnly events claimed by more than one consumer
--declinedOnly events no consumer claimed
--jsonEmit the records as JSON

flint orbh worker

flint orbh worker [options] [command]

Spawn and follow workers — runtime objects bound to one unit of work each

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
A worker is a headless session bound to exactly one unit and to a conversational
surface. Its parent agent spawns it with a self-contained brief; it narrates on
its own update stream, parks while it waits, converses with the human in its own
thread, and returns exactly once — the delivery result that resolves the parent's
collection. `worker spawn` does not block: the result arrives through the normal
child-result wake.

The native surface (this session spool) is always present and is never a binding.
External surfaces — a Discord thread, and later anything else — are bound
projections with inbound routing; nothing is lost when one of them dies.

Subcommands: spawn, list, show, collect, say, kill.

flint orbh worker spawn
flint orbh worker spawn [options] <brief...>

Spawn a worker for one unit of work (non-blocking)

ArgumentDescription
briefThe self-contained brief the worker executes
OptionDescription
--agent <name>Parent orb agent — the worker becomes its subagent
--unit <title>Mesh title of the unit artifact this worker owns
--label <label>Human handle (default: derived from the unit title)
--target <runtime/profile>Launch target (default: the agent's, else the first available target of the default target list)
--account <name>Harness account (default: the agent's)
--fleet <handle>Make the worker a member of this open fleet when its parent is in no fleet (a member parent already gives its fleet)
--output-schema <schema>JSON Schema (a file path, or inline JSON) that each return of the worker must match; a matching return is stored as result.structured
--jsonPrint the spawn outcome as JSON
flint orbh worker list
flint orbh worker list [options]

List workers with derived state, unit, and surfaces

OptionDescription
--agent <name>Only workers of this orb agent
--allInclude finished and dead workers
--jsonPrint workers as JSON
flint orbh worker show
flint orbh worker show [options] <ref>

Show one worker in full

ArgumentDescription
refWorker id, backing session id, or label
OptionDescription
--jsonPrint the worker as JSON
flint orbh worker collect
flint orbh worker collect [options] <ref>

Read a worker's updates from your own durable cursor, without waking it

ArgumentDescription
refWorker id, backing session id, or label
OptionDescription
--peekShow new updates without advancing your cursor
--allShow the full history without advancing your cursor
--jsonPrint the collected window as JSON
flint orbh worker say
flint orbh worker say [options] <text...>

Post a conversational reply onto a worker's bound surfaces

ArgumentDescription
textWhat to say
OptionDescription
--worker <ref>Worker id, backing session id, or label (default: this session)
flint orbh worker kill
flint orbh worker kill [options] <ref>

Kill a worker's backing session and tear down its bound surfaces

ArgumentDescription
refWorker id, backing session id, or label

flint orbh procedure

flint orbh procedure [options] [command]

Attach a deterministic step register to this session: ordered steps, forced evidence check-ins, verb-side enforcement. Self-targets via ORBH_SESSION_ID.

Subcommands: start, step, skip, show, list, finish, abandon.

flint orbh procedure start
flint orbh procedure start [options]

Attach a new procedure to a session (refused while one is already active)

OptionDescription
--title <title>Human title for the procedure
--from <file>Extract ordered steps from a markdown/text file (numbered items, else top-level bullets, else ## headings; fenced code blocks are ignored; a "(skippable)" annotation on a step line marks it skippable and is stripped from the title)
--steps <list>Semicolon-separated step titles; a trailing "?" marks a step skippable
--enforcedRefuse session return --finish while required steps are outstanding
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID (a dispatcher may start a procedure for a session it launched)
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure step
flint orbh procedure step [options] <n>

Complete the current step with evidence and advance the cursor (self-targets via ORBH_SESSION_ID)

ArgumentDescription
nStep number — must be the current step
OptionDescription
--update <evidence>What you actually did — refused when empty
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure skip
flint orbh procedure skip [options] <n>

Skip the current step (skippable only) with a reason and advance the cursor (self-targets via ORBH_SESSION_ID)

ArgumentDescription
nStep number — must be the current step
OptionDescription
--reason <why>Why this step is being skipped — refused when empty
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure show
flint orbh procedure show [options]

Show a session's active procedure (or its most recently updated one)

OptionDescription
--jsonDump the raw record
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID (read-only)
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure list
flint orbh procedure list [options]

List a session's procedures (--all: every procedure in this Orb store)

OptionDescription
--allList every procedure in the store, not just this session's
--session <id>Target session ID (full or partial); defaults to ORBH_SESSION_ID (read-only)
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure finish
flint orbh procedure finish [options]

Close the active procedure, refused while required steps are outstanding (self-targets via ORBH_SESSION_ID)

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh procedure abandon
flint orbh procedure abandon [options]

Abandon the active procedure with a reason — the honest escape hatch (self-targets via ORBH_SESSION_ID)

OptionDescription
--reason <why>Why the procedure is being abandoned — refused when empty
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh workflow

flint orbh workflow [options] [command]

Durable cross-session chaining: arm clauses on a session return or a procedure step, and let a chokepoint fire them.

Subcommands: dynamic, after, after-procedure, arm, manage, show, list, close, cancel, fire-event.

flint orbh workflow dynamic
flint orbh workflow dynamic [options] [command]

Author a workflow on the spot, with no shipped definition behind it

Subcommands: start.

flint orbh workflow dynamic start
flint orbh workflow dynamic start [options]

Start an empty dynamic workflow instance; hang clauses on it with workflow after

OptionDescription
--title <title>Human title for the workflow
--session <id>Owning session id; defaults to ORBH_SESSION_ID
--max-children <n>Cap on children this workflow may launch (default 16)
--jsonEmit the created instance as JSON
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow after
flint orbh workflow after [options] <session-id>

Arm a clause on a session's NEXT return (an already-returned run does not count)

ArgumentDescription
session-idSubject session id (full or partial)
OptionDescription
--then <prompt>Prompt to launch when the clause fires; may contain {{...}} tokens resolved at fire time, including {{result:subject}} for the triggering subject's own result
--on <edge>Edge to take: finished | failed | any (default: "finished")
--target <runtime/profile>Agent target for the launched child (default: 'default', the first available target of the default target list at launch)
--wf <id>Append to this workflow instance instead of creating a fresh one
--label <label>Child label, referenced by {{result:<label>}}; defaults to the clause id ('subject' is reserved)
--title <title>Title for the launched child session
--session <id>Owning session id for a freshly created instance; defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow after-procedure
flint orbh workflow after-procedure [options] <procedure-id>

Arm a clause on a procedure step or on the procedure finishing (arming ahead of the procedure existing is legal)

ArgumentDescription
procedure-idSubject procedure id
OptionDescription
--then <prompt>Prompt to launch when the clause fires; may contain {{...}} tokens resolved at fire time, including {{result:subject}} for the triggering subject's own result
--step <n>Fire on this step settling; omit to fire when the procedure finishes
--on <edge>Edge to take: finished | failed | any (default: "finished")
--target <runtime/profile>Agent target for the launched child (default: 'default', the first available target of the default target list at launch)
--wf <id>Append to this workflow instance instead of creating a fresh one
--label <label>Child label, referenced by {{result:<label>}}; defaults to the clause id ('subject' is reserved)
--title <title>Title for the launched child session
--session <id>Owning session id for a freshly created instance; defaults to ORBH_SESSION_ID
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow arm
flint orbh workflow arm [options] <name-or-path>

Arm a STATIC workflow from a shipped definition (by name) or a definition file (by path). Every trigger subject is resolved and anchored now; action prompts stay templates until they fire.

ArgumentDescription
name-or-pathDefinition name under <orbRoot>/workflows/definitions, or a path to a definition JSON
OptionDescription
--args <k=v>Definition argument override; repeat to add more (default: [])
--session <id>Owning session id; defaults to ORBH_SESSION_ID
--max-children <n>Override the definition's child cap (default 16)
--jsonEmit the armed instance as JSON
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow manage
flint orbh workflow manage [options] <id>

Attach a manager to a workflow. The manager is an event CONSUMER woken with a digest — it never collects children and never advances clauses.

ArgumentDescription
idWorkflow instance id (full or unique prefix)
OptionDescription
--target <runtime/profile>Agent target used when the engine has to spawn the manager
--session <id>Attach this EXISTING session as the manager instead of spawning one
--wake-on <csv>Signals to wake on (default clause-failed,child-failed,all-clauses-done); known: clause-fired,clause-done,clause-failed,child-failed,all-clauses-done
--spawn <policy>eager | on-first-wake (default: "on-first-wake")
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow show
flint orbh workflow show [options] <id>

Render a workflow instance: derived status, clauses, children, context and journal

ArgumentDescription
idWorkflow instance id (full or unique prefix)
OptionDescription
--jsonEmit the raw instance plus derivedStatus and per-child outcome kinds
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow list
flint orbh workflow list [options]

List workflow instances in this scope, most recently updated first

OptionDescription
--jsonEmit the list as JSON
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow close
flint orbh workflow close [options] <id>

Mark a workflow closed — its duty is discharged; armed clauses stop matching

ArgumentDescription
idWorkflow instance id (full or unique prefix)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow cancel
flint orbh workflow cancel [options] <id>

Mark a workflow cancelled — abandoned deliberately; armed clauses stop matching

ArgumentDescription
idWorkflow instance id (full or unique prefix)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
flint orbh workflow fire-event
flint orbh workflow fire-event [options]

Manually drive the firing chokepoint. The harness chokepoints (session return, orbh end, procedure step/skip/finish/abandon) already call fireWorkflowEvent in-process; this verb is that same entry point, driven by hand for testing and manual recovery.

OptionDescription
--kind <kind>session-returned | procedure-step | procedure-finished
--session <id>Subject session id (with --kind session-returned)
--procedure <id>Subject procedure id (with the procedure kinds)
--step <n>Step number (with --kind procedure-step)
--outcome <outcome>procedure-step: done | skipped | failed; procedure-finished: finished | abandoned
--jsonEmit the fire report as JSON
-p, --path <dir>Path to flint (default: auto-detect)

flint orbh compact

flint orbh compact [options] [command]

Agent-authored compaction, in three verbs. compact start prints the handoff contract and the path to write it to, holds the pager, and marks the session [Compacting...]; you then write the handoff with your own tools. compact handoff is TURN-ENDING: it validates what you wrote, ends this context, and relaunches the SAME session from it; --into <runtime/profile> [--account <name>] selects the runtime, profile, and optional account for that fresh run. Interactive panes keep their manager and swap only the harness child. compact finish is run by the RELAUNCHED context once it has read the handoff and every FILES path — it clears [Compacting...] and releases the hold. compact abort backs out before handoff.

Subcommands: start, handoff, test, finish, abort.

flint orbh compact start
flint orbh compact start [options]

Hold the pager and prepare the compaction handoff. Request continuation on supported Codex managers. Keep this context alive.

flint orbh compact handoff
flint orbh compact handoff [options]

TURN-ENDING: validate the handoff, end this context, and relaunch the same session from it. Optionally select a different runtime/profile/account for the fresh run.

OptionDescription
--into <runtime/profile>Relaunch the fresh run under this profile registry key (cross-runtime allowed)
--account <name>Use this account for the relaunched run (requires --into)
flint orbh compact test
flint orbh compact test [options]

Show the compaction curtain on this pane for a few seconds, then hand the pane back unchanged. Compacts nothing.

OptionDescription
--duration <ms>How long to hold the pane (900–30000ms, default 4500)
flint orbh compact finish
flint orbh compact finish [options]

Run by the RELAUNCHED context once it has read the handoff and every FILES path: clears [Compacting...] and releases the pager hold.

flint orbh compact abort
flint orbh compact abort [options]

Back out of a compaction started but not handed off: releases the pager hold and clears [Compacting...].

flint orbh command-action

flint orbh command-action [options] [command]

Inspect and claim an exact command action in this session.

Subcommands: claim, recover.

flint orbh command-action claim
flint orbh command-action claim [options] <id>

Claim once before executing the captured instructions.

ArgumentDescription
idExact action ID.
flint orbh command-action recover
flint orbh command-action recover [options] <id>

Inspect captured instructions. Recovery never resends to the harness.

ArgumentDescription
idExact action ID.
OptionDescription
--resumeRelease the previous claim for explicit manual recovery. Use only after the previous execution stopped.

flint orbh switch

flint orbh switch [options] <mode> [id]

Switch a session between interactive and headless mode; both landings come up live

ArgumentDescription
modeTarget mode (interactive|headless)
idSession ID (full or partial); defaults to ORBH_SESSION_ID inside a harness
OptionDescription
--forceAdopt a subagent even though a live collector is blocked on it (interactive only)
--hereAttach this terminal to the relaunched session instead of just printing the attach command (interactive only)
--no-launchFlip to interactive without starting anything; print the open command (interactive only)
--awaitLand the released session awaiting, with the pickup note held for its next wake (headless only)
--resume <prompt>Append this prompt after the pickup prompt on the resumed turn (headless only)
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh copy-spools

flint orbh copy-spools [options]

Copy each old session spool of the 'flint' space into 'local', keep every source, and give one result per spool

OptionDescription
--dry-runWrite nothing: print the result that each spool would get
--jsonPrint the results as one JSON value
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh store

flint orbh store [options] [command]

Operator verbs of an Orb store

Subcommands: frontier, epoch.

flint orbh store frontier
flint orbh store frontier [options] [command]

Operator verbs of the frontier index of the store (indexes/orb-event-frontier.json)

Subcommands: rebuild.

flint orbh store frontier rebuild
flint orbh store frontier rebuild [options]

Drop the frontier index and make each entry from a full scan of its log (the rollback step at writer epoch 1)

OptionDescription
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh store epoch
flint orbh store epoch [options] [command]

Show or set the writer epoch of the store (.orb/writer-epoch.json)

Subcommands: show, raise, lower.

flint orbh store epoch show
flint orbh store epoch show [options]

Show the writer epoch of the store; an absent marker is epoch 1

OptionDescription
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh store epoch raise
flint orbh store epoch raise [options]

Raise the writer epoch to 2; refuses while a registered process of the store runs an older build

OptionDescription
--servers-confirmed <note>Confirm the processes that no registry lists (Flint servers, Orbh servers, collectors) with a note
--confirm-unfencedConfirm that every writer of the store is stopped: the verb does not fence writers yet
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created
flint orbh store epoch lower
flint orbh store epoch lower [options]

Set the writer epoch to 1 and wait until each running writer reads it; the facts already written are not converted

OptionDescription
--confirm-unfencedConfirm that every writer of the store is stopped: the verb does not fence writers yet
--jsonPrint JSON
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbh fork

flint orbh fork [options] [targetOrPrompt] [prompt]

Fork an Orbh session into a new detached interactive session seeded from its conversation transcript

ArgumentDescription
targetOrPromptOptional harness runtime or runtime/name (agy, claude, codex, cursor, droid, grok, kimi, muse, opencode); otherwise the fork prompt
promptOptional initial instruction for the fork
OptionDescription
--session <id>Source Orbh session (defaults to ORBH_SESSION_ID)
--compactDistill the source using the compaction prompt before seeding the fork
--attachAttach this terminal immediately after the detached fork starts
--account <name>Harness account name, or 'none' to bypass the runtime default
--model <model>Model override
-p, --path <dir>Path to flint (default: auto-detect)
--orb-root <dir>Scope this command to an Orb store directory (overrides ORBH_ORB_ROOT_DIR and cwd)
--at <scope>Scope this command by name: 'flint:<name>' (registered Flint) or 'machine' (~/.orb). The human spelling of --orb-root.
--create-storePermit an explicitly scoped store that does not exist yet to be created

flint orbcode

flint orbcode [options] [command]

OrbCode views: a view of a product with the proof of Orbtest. list, view, check, diff, history, and parts write nothing; review, apply, discard, restore, set, and remove write.

OptionDescription
-p, --path <dir>Path to the Flint (default: auto-detect)

Subcommands: list, view, check, review, diff, apply, discard, history, restore, set, remove, parts.

flint orbcode list

flint orbcode list [options]

List the views of each OrbCode project with their question, shape, lifetime, curation, proof counts, and finding counts. Writes nothing.

OptionDescription
--project <name>Only the views of this project
--jsonOutput one JSON line (schema orbcode-view-list/1)

flint orbcode view

flint orbcode view [options] [view]

Show one view (or one candidate with --candidate) joined with the stories and the proof of Orbtest and with Git: each node with its proof state, its criteria, its cases, its related cases, and its findings. Writes nothing.

ArgumentDescription
viewThe UUID or the name of the view (not with --candidate)
OptionDescription
--candidate <id>Show a candidate as a view, with its proof
--checkout <dir>Read the code and the Git history of this worktree of the codebase in place of its primary checkout; the Orbtest definitions and runs come from its product root when it has them, else from the primary checkout
--project <name>Only the views of this project
--jsonOutput one JSON line (schema orbcode-view/1)

flint orbcode check

flint orbcode check [options] [view]

Print the findings of the views (format, code-ref-missing, story-missing, review-due, anchor-unknown, never-reviewed, no-contract, part-missing, no-part). Exits 1 when a finding has the level error. Writes nothing.

ArgumentDescription
viewThe UUID or the name of one view (default: every view)
OptionDescription
--paths <path...>Only the views with a node whose code-refs match one of these paths: an absolute path matches the code-refs of the codebase of its Git repository (also @<Codebase name>/<path>); a relative path is a path of the codebase of the project
--candidate <id>Check one candidate file as a view
--checkout <dir>Read the code and the Git history of this worktree of the codebase in place of its primary checkout; the Orbtest definitions and runs come from its product root when it has them, else from the primary checkout
--project <name>Only the views of this project
--jsonOutput one JSON line (schema orbcode-check/1)

flint orbcode review

flint orbcode review [options] <view>

Write the review anchor of the nodes of a view: the commit and the hashes of the claim and of the references of each node. With no --node, each node with a node block.

ArgumentDescription
viewThe UUID or the name of the view
OptionDescription
--node <id...>Only these nodes
--commit <sha>The commit of the anchor (default: the HEAD of the codebase)
--project <name>Only the views of this project
--jsonOutput one JSON line (schema orbcode-review/1)

flint orbcode diff

flint orbcode diff [options] [view]

Compare a candidate with its view by node id: the added, removed, moved, and changed nodes, and whether an apply is a conflict now. Writes nothing.

ArgumentDescription
viewThe UUID or the name of the view (the view_id of the candidate for a new view); not needed with --against-candidate
OptionDescription
--candidate <id>The candidate id
--against-candidate <id>Compare with another candidate of the same view in place of the view
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-diff/1)

flint orbcode apply

flint orbcode apply [options] <view>

Replace a view with a candidate only when the view did not change after the candidate was made (the base_hash of the candidate). Then remove the candidate. A conflict writes nothing and exits 1. An apply by an agent sets the curation proposed; an apply by a person keeps the curation of the view.

ArgumentDescription
viewThe UUID or the name of the view (the view_id of the candidate for a new view)
OptionDescription
--candidate <id>The candidate id
--by <agent|person>Who applies: agent sets the curation proposed; person keeps the curation of the view (default: "agent")
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-apply/1)

flint orbcode discard

flint orbcode discard [options]

Remove a candidate file.

OptionDescription
--candidate <id>The candidate id
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-discard/1)

flint orbcode history

flint orbcode history [options] <view>

List the replaced forms of a view in History/, the newest first. An apply keeps the content that it replaces there. Writes nothing.

ArgumentDescription
viewThe UUID or the name of the view
OptionDescription
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-history/1)

flint orbcode restore

flint orbcode restore [options] <view>

Make a candidate from a replaced form of a view (History/). Then apply it as any candidate: the view does not change here.

ArgumentDescription
viewThe UUID or the name of the view
OptionDescription
--from <history-id>The history id (flint orbcode history)
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-restore/1)

flint orbcode set

flint orbcode set [options] <view>

Set the lifetime (draft or kept) and the curation (proposed or accepted) of a view: the decision of a person. Only these keys of the file change.

ArgumentDescription
viewThe UUID or the name of the view
OptionDescription
--lifetime <lifetime>draft or kept
--curation <curation>proposed or accepted
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-fields/1)

flint orbcode remove

flint orbcode remove [options] <view>

Remove a draft view and its candidates. A kept view is refused: set --lifetime draft first. The view goes to History/ first (flint orbcode restore brings it back).

ArgumentDescription
viewThe UUID or the name of the view
OptionDescription
--project <name>Only this project
--jsonOutput one JSON line (schema orbcode-remove/1)

flint orbcode parts

flint orbcode parts [options]

List the static parts of each OrbCode project (the artifacts of Map/) with the processes that pass through each part (views of the shape flow or streams, nodes that name the part) and the count of the code-refs that name no file. Writes nothing.

OptionDescription
--project <name>Only the parts of this project
--jsonOutput one JSON line (schema orbcode-parts/1)

flint ite

flint ite [options] [command]

Read and change programs, maps, views, contacts, observations, and jobs.

OptionDescription
-p, --path <dir>The Flint folder. The default is the current Flint.

Subcommands: flow, system, statements, evidence, instruments, read, notice, log, brief, vitals, prompt, adopt, revision, list, frameworks, map, view, check, create, rename, archive, part, include, link, contact, run, act, observe, observations, focus, diff, apply, discard, job.

flint ite flow

flint ite flow [options] [command]

Read flows and run them by hand.

Subcommands: list, show, start, runs, status, done, answer, skip, dispatch, reconcile, waive, approve, pause, resume, cancel.

flint ite flow list
flint ite flow list [options] <program>

List the flows of a program. Write nothing.

OptionDescription
--jsonPrint one JSON value.
flint ite flow show
flint ite flow show [options] <view>

Read the resolved flow and its refusals. Write nothing.

OptionDescription
--jsonPrint one JSON value.
flint ite flow start
flint ite flow start [options] <program> <view>

Start a flow run and save its snapshot.

OptionDescription
--jsonPrint one JSON value.
--title <text>The title of the run.
--input <name=value>Give a run input. Repeat for each input. Separate notes with semicolons.
--at <time>The ISO time when the run started.
flint ite flow runs
flint ite flow runs [options] <program>

List the runs of a program. Write nothing.

OptionDescription
--jsonPrint one JSON value.
--status <status>One of: active, paused, succeeded, failed, cancelled.
flint ite flow status
flint ite flow status [options] <run>

Read the checklist, active step, inputs, and output form.

ArgumentDescription
runThe run id, its prefix of at least eight characters, or its title.
OptionDescription
--jsonPrint one JSON value.
flint ite flow done
flint ite flow done [options] <run>

Complete the active visit with its outputs.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--output <name=value>Give a text, number, or choice output.
--note <name=title>Give the title of one output note.
--text <name=text>Give the body of an output note.
--notes <name=lines>Give note titles separated by semicolons.
--input <name=value>Give an input that the run does not supply.
flint ite flow answer
flint ite flow answer [options] <run> <outcome>

Answer the active decision.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
flint ite flow skip
flint ite flow skip [options] <run>

Skip a step that has no required output.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--reason <text>Why this step can be skipped.
flint ite flow dispatch
flint ite flow dispatch [options] <run>

Dispatch the active visit: an agent or a command step, or the Begin of a person step whose effect needs evidence.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
flint ite flow reconcile
flint ite flow reconcile [options] <run>

Check the pending effects of a run against the system log now, or close an unknown attempt by a decision of a person.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--attempt <id>The attempt. The default is each open attempt of the run.
--decision <decision>For an unknown attempt: retry, failed, or wait-evidence.
--reason <text>The reason of the decision.
flint ite flow waive
flint ite flow waive [options] <run>

Waive one pending or unknown effect with a reason (a person only). A waiver is not a confirmation.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--attempt <id>The attempt whose effect you waive.
--reason <text>Why the effect does not need evidence.
flint ite flow approve
flint ite flow approve [options] <run>

Grant or refuse the approval of the step that waits (a person only). The visit, the revision, and the digest come from a read right before the write.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--step <id>The step that waits for the approval.
--refuseRefuse the approval.
--reason <text>The reason of the decision.
--revision <revision>The revision that you reviewed. The default is the revision of the read before the write.
--digest <digest>The inputs digest that you reviewed. The default is the digest of the read before the write.
flint ite flow pause
flint ite flow pause [options] <run>

Pause a run.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--reason <text>The reason for this action.
flint ite flow resume
flint ite flow resume [options] <run>

Resume a run.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--reason <text>The reason for this action.
flint ite flow cancel
flint ite flow cancel [options] <run>

Cancel a run.

OptionDescription
--jsonPrint one JSON value.
--request-id <id>Use this request id for a retry. The default is a new UUID.
--expected-seq <number>Require this last sequence. The default is the sequence read before this command.
--at <time>The ISO time when the action occurred.
--reason <text>The reason for this action.

flint ite system

flint ite system [options] <program>

Show the root of a living system: owners, boundary, goals, maps, connections, instruments, instructions, and vital signs. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.

flint ite statements

flint ite statements [options] <program>

Show each statement with its state, value, source, and age. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.

flint ite evidence

flint ite evidence [options] <program> <statement>

Show the evidence of one statement. Write nothing.

ArgumentDescription
programThe name or id of the program.
statementThe statement id.
OptionDescription
--jsonPrint one JSON value.

flint ite instruments

flint ite instruments [options] <program>

Show each instrument with its health. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.

flint ite read

flint ite read [options] <program>

Read instruments now. The system log gets the observations and one read record of each instrument.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--instrument <id>Read only this instrument. Repeat for more instruments.
--reconcileA full read after a gap (the trigger reconcile).

flint ite notice

flint ite notice [options] <program>

Take one notice of an event source. A notice is not evidence: a read of the instrument follows.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--instrument <id>The instrument that the notice is for.
--id <event id>The id of the event at its source. The log takes each id once.
--ref <ref>The ref that changed.
--revision <sha>The revision at the source.

flint ite log

flint ite log [options] <program>

Show the records of the system log. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--since-seq <n>Only the records after this sequence, the oldest first.
--kind <kind>Only one kind: observation, read, notice, ack, brief-opened, escalation, prompt, detection, clearance.
--limit <n>The most records (default 200, at most 5000).

flint ite brief

flint ite brief [options] [command] <program>

Show the brief: what changed, what is at risk, what is old, what nobody watches, and what waits. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--since <duration>The start of the window, for example 24h, or an ISO time.
--markdownPrint the brief as Markdown.

Subcommands: ack.

flint ite brief ack
flint ite brief ack [options] <program> <item>

Acknowledge one episode of one item of the brief. The log gets one ack record.

ArgumentDescription
programThe name or id of the program.
itemThe item id of the brief.
OptionDescription
--jsonPrint one JSON value.
--episode <id>The episode that you saw. An acknowledgement of a closed episode is refused.
--note <text>A note for the owner.

flint ite vitals

flint ite vitals [options] <program>

Show the five vital signs: freshness, closure, use, surprise, and coverage. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--window <duration>The window, for example 7d (the default).

flint ite prompt

flint ite prompt [options] <program>

Show the prompt of the system for an agent. An agent caller writes one prompt record in the log.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--flow <id>The flow id or the view id. Omit it for the reconciliation prompt.
--step <id>The step id of the flow.
--attempt <id>The attempt that the prompt is for.

flint ite adopt

flint ite adopt [options] <program>

Adopt the protected declarations of a living system as they are now (a person only). The guard compares the next reads with them.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.

flint ite revision

flint ite revision [options] [command]

Propose, review, apply, revert, or discard a revision of one file of a living system.

Subcommands: list, show, propose, apply, revert, discard.

flint ite revision list
flint ite revision list [options] <program>

List the revisions of the system. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--state <state>Only one state: proposed, applying, applied, reverting, reverted, discarded.
flint ite revision show
flint ite revision show [options] <program> <id>

Show one revision with its diff and its protected changes. Write nothing.

ArgumentDescription
programThe name or id of the program.
idThe revision id.
OptionDescription
--jsonPrint one JSON value.
flint ite revision propose
flint ite revision propose [options] <program>

Propose a revision of one file of the system. It writes the revision file only.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--kind <kind>One of: part, statement, instruction, goal, system.
--target <file>The target file, relative to the Flint root. It must be in the folder of the program.
--content-file <path>A file with the full new bytes of the target.
--reason <text>Why the change is needed.
--subject <id>The part, statement, or flow that the revision is about.
--trigger <trigger>One of: person, repeated-failure, goal-at-risk, surprise. The default is person.
--base-hash <hash>The hash of the target that you read. The default is the hash of the target now (none for a new file).
flint ite revision apply
flint ite revision apply [options] <program> <id>

Apply a revision. A protected revision needs --protected from a person.

ArgumentDescription
programThe name or id of the program.
idThe revision id.
OptionDescription
--jsonPrint one JSON value.
--base-hash <hash>The hash of the target that you saw. The default is the hash of the target now.
--reason <text>Why you revert (revert only).
--protectedApply a revision that changes a protected field (a person only).
flint ite revision revert
flint ite revision revert [options] <program> <id>

Write the exact old bytes back, or remove a new part.

ArgumentDescription
programThe name or id of the program.
idThe revision id.
OptionDescription
--jsonPrint one JSON value.
--base-hash <hash>The hash of the target that you saw. The default is the hash of the target now.
--reason <text>Why you revert (revert only).
--protectedApply a revision that changes a protected field (a person only).
flint ite revision discard
flint ite revision discard [options] <program> <id>

Discard a revision that is not applied.

ArgumentDescription
programThe name or id of the program.
idThe revision id.
OptionDescription
--jsonPrint one JSON value.

flint ite list

flint ite list [options]

List the programs, their frameworks, counts, and grounding. Write nothing.

OptionDescription
--jsonPrint one JSON value.

flint ite frameworks

flint ite frameworks [options]

List the frameworks and their kinds. Write nothing.

OptionDescription
--jsonPrint one JSON value.

flint ite map

flint ite map [options] <program>

Show each part, its kind, parent, links, and grounding. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.

flint ite view

flint ite view [options] [command] <view>

Show, restore, or remove one view, or read its history.

ArgumentDescription
viewThe name or id of the view.
OptionDescription
--jsonPrint one JSON value.

Subcommands: history, restore, remove.

flint ite view history
flint ite view history [options] <view>

List the saved forms of one view. Write nothing.

ArgumentDescription
viewThe name or id of the view. Use the id for a removed view.
OptionDescription
--jsonPrint one JSON value.
flint ite view restore
flint ite view restore [options] <view>

Restore a saved form. Keep the current form in history first.

ArgumentDescription
viewThe name or id of the view. Use the id for a removed view.
OptionDescription
--jsonPrint one JSON value.
--from <id>The history id. Run flint ite view history for the list.
--base-hash <hash>Refuse a changed view. Use null when the view must be absent.
flint ite view remove
flint ite view remove [options] <view>

Keep the view in history, then remove it and its candidates. Refuse a kept OrbCode view.

ArgumentDescription
viewThe name or id of the view.
OptionDescription
--jsonPrint one JSON value.
--base-hash <hash>Refuse the removal if the view has a different hash.

flint ite check

flint ite check [options] [program]

Show the findings. Exit 1 for an error finding. Run no contact and write nothing.

ArgumentDescription
programThe name or id of one program. The default is all programs.
OptionDescription
--jsonPrint one JSON value.
--candidate <id>Show only the findings of one candidate. Omit the program.

flint ite create

flint ite create [options] <name>

Make a program with a framework and a purpose.

ArgumentDescription
nameThe name of the program.
OptionDescription
--jsonPrint one JSON value.
--framework <id>The framework id. Run flint ite frameworks for the list.
--purpose <text>What the program models, and why.

flint ite rename

flint ite rename [options] <program> <name>

Rename a program and its files. Update the wikilinks in the Mesh.

ArgumentDescription
programThe name or id of the program.
nameThe new name of the program.
OptionDescription
--jsonPrint one JSON value.
--base-hash <hash>Refuse the rename if the program file has a different hash.

flint ite archive

flint ite archive [options] <program>

Move a program to Mesh/Archive/Programs. Delete no file.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--base-hash <hash>Refuse the archive if the program file has a different hash.

flint ite part

flint ite part [options] [command]

Add or change a part of a program.

Subcommands: add, set.

flint ite part add
flint ite part add [options] <program>

Add one part to the map.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--kind <kind>The kind of the part.
--title <text>The title of the part.
--parent <id>The id of the parent node.
--text <text>The text of the part.
--field <key=value>Set a field. Repeat this flag for more fields. A value can be JSON.
flint ite part set
flint ite part set [options] <program> <node>

Change the given fields of a part. Other fields stay.

ArgumentDescription
programThe name or id of the program.
nodeThe id of the part.
OptionDescription
--jsonPrint one JSON value.
--title <text>The new title.
--text <text>The new text.
--kind <kind>The new kind.
--parent <id>The parent node. An empty value removes the parent.
--field <key=value>Set a field. Repeat for more fields. JSON null removes the field.
--base-hash <hash>Refuse the change if the note has a different hash.

flint ite include

flint ite include [options] <program> <note>

Put an existing Mesh note on the map. With --remove, take it off and keep the note.

ArgumentDescription
programThe name or id of the program.
noteThe full note name, with no file extension.
OptionDescription
--jsonPrint one JSON value.
--removeRemove the note from include. Keep the note file.
flint ite link [options] <program> <from> <to>

Add a link. With --remove, remove the link.

ArgumentDescription
programThe name or id of the program.
fromThe source node id.
toThe target node id.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--relation <key>The relation of the link.
--removeRemove this link.

flint ite contact

flint ite contact [options] [command]

Set where a node touches reality.

Subcommands: add, remove.

flint ite contact add
flint ite contact add [options] <program> <node>

Add one contact. Keep the other contacts of the node.

ArgumentDescription
programThe name or id of the program.
nodeThe node id.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--kind <kind>reference, file, command, http, mesh, orbtest, agent, human, or note.
--id <id>A mapping contact id. The default uses claim words, prompt words, or command words, then the kind. Duplicates get a number. Wikilinks use a computed id.
--claim <text>The statement that the contact checks.
--run <command>The shell command of a command contact.
--cwd <dir>The working folder of the command.
--url <url>The URL of an HTTP contact.
--path <path>The file path of a file contact.
--ref <note>The Mesh note name. Reference and note contacts store a wikilink and no other fields.
--prompt <text>The question for an agent or person.
--fresh-for <duration>How long an observation stays fresh, for example 7d.
--direction <direction>observe or act. The default is observe.
--query <json>The Mesh query as a JSON object.
--expect <json>The expected result as a JSON object.
--story <id>An Orbtest story id. Repeat for more stories.
--criterion <address>An Orbtest criterion address. Repeat for more criteria.
flint ite contact remove
flint ite contact remove [options] <program> <node>

Remove one stored contact. Keep the other contacts.

ArgumentDescription
programThe name or id of the program.
nodeThe node id.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--contact <id>The contact id shown by map or view.

flint ite run

flint ite run [options] <program>

Run automatic contacts and record observations. Command contacts need --kind command or --contact.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map or one view id. The default is all documents.
--node <id...>Check only these nodes.
--kind <kind...>Check only these contact kinds.
--contact <id>Check one contact of the selected node.

flint ite act

flint ite act [options] <program> <node>

Run the named action contact and record its result.

ArgumentDescription
programThe name or id of the program.
nodeThe node id.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--contact <id>One command contact with direction: act.

flint ite observe

flint ite observe [options] <program> [node]

Record what an agent or person saw for one contact, or report the value of one statement of a living system.

ArgumentDescription
programThe name or id of the program.
nodeThe node id (with --contact).
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--contact <id>The contact id.
--state <state>holds, fails, or error.
--statement <id>A statement of a living system. Give --value, and --type when the type is not the type of the statement.
--value <value>The value of the statement. JSON for the type json.
--type <type>The type of the value: number, text, boolean, time, version, sha, json, or verdict.
--at <time>The ISO time when the value was seen (with --statement).
--summary <text>What you saw.
--evidence <kind=value>Add evidence. Repeat for more evidence.

flint ite observations

flint ite observations [options] <program>

List observations, with the newest first. Write nothing.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--node <id>Only this node.
--document <id>Only this document.
--contact <id>Only this contact.
--limit <count>The largest number of observations.

flint ite focus

flint ite focus [options] <nodes...>

Set the focus of this Orbh session.

ArgumentDescription
nodesOne or more node ids.
OptionDescription
--jsonPrint one JSON value.
--program <name>Also set the program of this session.

flint ite diff

flint ite diff [options] [view]

Compare a candidate with its view. Write nothing.

ArgumentDescription
viewThe view id. The default is the view of the candidate.
OptionDescription
--jsonPrint one JSON value.
--candidate <id>The candidate id.

flint ite apply

flint ite apply [options] [view]

Apply a candidate. A conflict writes nothing and exits 1.

ArgumentDescription
viewThe view id. The default is the view of the candidate.
OptionDescription
--jsonPrint one JSON value.
--candidate <id>The candidate id.

flint ite discard

flint ite discard [options]

Remove a candidate. Keep the view.

OptionDescription
--jsonPrint one JSON value.
--candidate <id>The candidate id.

flint ite job

flint ite job [options] <program>

Start an Orbh job on the program or selected nodes.

ArgumentDescription
programThe name or id of the program.
OptionDescription
--jsonPrint one JSON value.
--document <id>The map, or the id of a view. (default: "map")
--template <id>model, view, reshape, ground, observe, repair, do, explain, or free.
--node <id...>The node ids of the job.
--prompt <text>The instructions for the job. (default: "")
--target <target>The Orbh runtime or runtime/profile.
--account <name>The Orbh account.

flint tinderbox

flint tinderbox [options] [command]

Manage a box of Flints

A box has three files: tinderbox.toml (the intent), tinderbox.json (the record),
and .tinderbox/ (the facts of this machine).

Subcommands: init, start, import, add, remove, rename, dissolve, sync, repo, git, org, status, check, heal.

flint tinderbox init

flint tinderbox init [options] [name]

Make a box folder here: a new empty box with <name>, or a clone of the box at --from <url> followed by the local sync

ArgumentDescription
nameThe box name (with --from, the name in tinderbox.toml is used)
OptionDescription
--from <url>Clone the box from this Git URL, then run the local sync

flint tinderbox start

flint tinderbox start [options] <name> [path]

Make a new box and move the current Flint into it as its first owned member

ArgumentDescription
nameThe box name
pathThe folder that gets the new box (default: the parent folder of the current Flint)

flint tinderbox import

flint tinderbox import [options] <name> [source]

Move a Flint of the roster into this box as an owned member, or declare it from <source> when the roster does not have it

ArgumentDescription
nameThe name of the Flint in the roster
sourceA Git URL or "registry:<name>": declares the member with no move when the roster does not have <name>
OptionDescription
--no-openDo not open the Flint in Obsidian after the move
--yesMove the Flint with no confirmation prompt

flint tinderbox add

flint tinderbox add [options] <name> <source>

Declare a member without cloning or moving it

ArgumentDescription
nameThe member name in tinderbox.toml
sourceA Git source (an owned member) or "registry:<name>" (a reference member)
OptionDescription
--jsonPrint the report as one JSON value
add writes the declaration to tinderbox.toml, refreshes .gitignore, and
records the member in tinderbox.json when its id is known. It makes
.tinderbox/ and the roster row of the box when they are absent. The next
flint tinderbox sync clones an owned member or references a roster member.

flint tinderbox remove

flint tinderbox remove [options] <name>

Remove a member and keep its folder, unless --move-out moves it

ArgumentDescription
nameThe member name in tinderbox.toml
OptionDescription
--move-out <dir>Move the member folder out of the box into <dir>
--jsonPrint the report as one JSON value
The member leaves tinderbox.toml and tinderbox.json. The references that the
box wired are stripped. The folder and its roster row stay, except with
--move-out: the folder then moves into <dir>, and the roster row follows it.

flint tinderbox rename

flint tinderbox rename [options] <from> [to]

Rename a member (its declaration, its record entry, its flint.toml name, and its folder), or rename the box with --tinderbox

ArgumentDescription
fromThe member name, or the new box name with --tinderbox
toThe new member name (not with --tinderbox)
OptionDescription
--tinderboxRename the box, its folder, and its roster row
--jsonPrint the report as one JSON value

flint tinderbox dissolve

flint tinderbox dissolve [options]

Remove the box and keep the member folders

OptionDescription
--move-to <dir>Move every member folder out of the box into <dir>
--forceDissolve also when a member has uncommitted or unpushed work
--dry-runShow the plan and change nothing
--yesDissolve with no confirmation prompt
--jsonPrint the report as one JSON value
Dissolve backs up and removes tinderbox.toml and tinderbox.json, removes the
roster row, and strips the wiring. The member folders, .git, and .tinderbox/
(with the backups) stay.

flint tinderbox sync

flint tinderbox sync [options]

Make the box match its intent on this machine, then run the local sync (flint sync) in each selected member

OptionDescription
--dry-runShow the plan of the box and of each selected member and change nothing
--no-gitNot needed: tinderbox sync does no Git transport (retired)
--no-updateNot needed: tinderbox sync does not move a lock (retired)
--jsonPrint the operation report of the box and of each member as one JSON value
--only <names...>Sync only these members (the repos are not synced)
--skip <names...>Do not sync these members (the repos are not synced)
Clones a missing owned member, references a roster member, wires the
connections and the repos, and records the box in tinderbox.json. It makes
no Obsidian vault registry entry: a vault enters the registry when Obsidian
opens it. Then runs `flint sync` in each selected member. It never asks
the registry, never moves a lock, and never touches origin. Undeclared folders
stay where they are.

flint tinderbox repo

flint tinderbox repo [options] [command]

Manage the repos of the box: codebases that are not Flints and that the box shares with its members

Subcommands: add, remove, list.

flint tinderbox repo add
flint tinderbox repo add [options] <name> <source>

Declare a repo in tinderbox.toml and clone it into Repos/, or reference it at path:<dir>

ArgumentDescription
nameThe repo name (the codebase reference name in each member)
sourceA Git URL (cloned into Repos/) or "path:<dir>" (a reference repo)
OptionDescription
--exposed-to <value>The members that get a codebase reference: "all" or a comma-separated list of member names (default: "all") (default: "all")
--mode <value>"own" (clone into Repos/) or "reference" (use the path as it is)
--jsonPrint the report as one JSON value
flint tinderbox repo remove
flint tinderbox repo remove [options] <name>

Remove a repo from tinderbox.toml and strip its codebase reference from each member

ArgumentDescription
nameThe repo name in tinderbox.toml
OptionDescription
--purgeAlso delete the clone under Repos/ (an owned repo only)
--yesDelete the clone with no confirmation prompt
--jsonPrint the report as one JSON value
flint tinderbox repo list
flint tinderbox repo list [options]

List the repos: name, mode, source, path, the members that get it, and whether it is on this machine

OptionDescription
--wideShow every column at full width

flint tinderbox git

flint tinderbox git [options] [command]

The transport of the box: exchange the history of the box repo and of each member with origin

Subcommands: sync, status, resume, resolve, publish.

flint tinderbox git sync
flint tinderbox git sync [options]

Exchange the box and member histories with origin

OptionDescription
--force-remoteIn each member, take the remote as truth: keep local work that merges, discard what does not
--force-localIn each member, take the local side as truth: overlapping changes resolve in favour of local commits
--no-syncTransport only: do not run the local sync of the box or of the members
--only <names...>Sync only these members (the box repo still syncs)
--jsonPrint the operation report as one JSON value
The box goes first: checkpoint, fetch, integrate. Then the local sync of the
box. Then the members, 4 at a time, each with the flow of `flint git sync`.
Then the second checkpoint of the box, and the push. A reference member is
skipped: its own Flint moves its history. A conflict holds the rebase; run
`flint tinderbox git resolve <member>`. A merge, a cherry-pick, or a revert
that holds a member or the box blocks it (exit 2): finish it with Git first.
flint tinderbox git status
flint tinderbox git status [options]

Show the Git journal of the last or interrupted git sync and the Git state of each member, with no change

OptionDescription
--jsonPrint the operation report as one JSON value
flint tinderbox git resume
flint tinderbox git resume [options]

Continue the last flint tinderbox git sync for each member that it did not finish

OptionDescription
--no-syncTransport only: do not run the local sync of the box or of the members
--jsonPrint the operation report as one JSON value
flint tinderbox git resolve
flint tinderbox git resolve [options] <member>

Fix one member that git sync left blocked: continue its held rebase, or sync it again with --local or --remote

ArgumentDescription
memberThe member name
OptionDescription
--localTake the local side: overlapping changes resolve in favour of local commits
--remoteTake the remote side: keep local work that merges, discard what does not
--replayAfter a remote history rewrite, replay local-only commits
--force-localRenamed: use --local (retired)
--force-remoteRenamed: use --remote (retired)
--no-syncTransport only: do not run the local sync of the member
--jsonPrint the operation report as one JSON value
flint tinderbox git publish
flint tinderbox git publish [options] <url>

Publish the box repo to a remote: set origin, name the branch main, commit pending changes, and push

ArgumentDescription
urlGit remote URL (e.g. git@github.com:owner/repo.git)
OptionDescription
--yesChange origin, rename the branch, and commit with no confirmation prompt (needed with --json or with no terminal)
--jsonPrint the operation report as one JSON value

flint tinderbox org

flint tinderbox org [options] [command]

The org of the box and of its owned members

Subcommands: set.

flint tinderbox org set
flint tinderbox org set [options] <org>

Set the org of the box and of each owned member: print the plan, and write it with --apply. none removes the org

ArgumentDescription
orgThe org slug, the org id, or none
OptionDescription
--id <uuid>The id of the org. The admin of the org gives it. Not needed when this machine knows the org
--applyWrite the plan. Without it nothing is changed
--jsonPrint the report as one JSON value

flint tinderbox status

flint tinderbox status [options]

Show the box (its name, its org, its last sync) and the state of each member and each connection

OptionDescription
--jsonPrint the status as one JSON value
--wideShow every column at full width

flint tinderbox check

flint tinderbox check [options]

Compare the intent of the box with this machine and give one next command for each finding, with no change

OptionDescription
--jsonPrint the findings, the status, and the next commands as one JSON value

flint tinderbox heal

flint tinderbox heal [options]

Repair the drift that flint tinderbox check finds (with a backup of the box files), then run the local sync of the box

OptionDescription
--dry-runShow every effect of the run (each repair and the local sync), and each finding that heal does not repair, and change nothing
--yesRepair with no confirmation prompt
--jsonPrint the result as one JSON value, in the shape of sync --json

flint orbit

flint orbit [options] [command]

Serve the Orbit dashboard of this computer from the Orbit build of this CLI

Subcommands: serve.

flint orbit serve

flint orbit serve [options]

Start the Orbit server. One Orbit runs for each NUU home: a second start shows the URL of the live Orbit and exits

OptionDescription
--port <port>The port of Orbit (default: ORBIT_PORT, else 13070)
--no-openDo not open the browser (ORBIT_OPEN=0 does the same)

flint blacksmith

flint blacksmith [options] [command]

Manage the Blacksmith daemon of this machine: it starts the Flint servers and the Orbh orchestrator

Subcommands: daemon, status, ls, kill, reload-plugins, restart-server, restart-steel, stop, restart, logs.

flint blacksmith daemon

flint blacksmith daemon [options]

Start the Blacksmith daemon in the background. --foreground: run it in this terminal

OptionDescription
--foregroundRun the daemon process in this terminal (do not detach). The long-running process entry
--port <port>The port of the daemon (with --foreground). 0 takes a free port; the endpoint projection of the home records it. Default 13030

flint blacksmith status

flint blacksmith status [options]

Show the status of the Blacksmith daemon

flint blacksmith ls

flint blacksmith ls [options]

List resources registered with Blacksmith

OptionDescription
--kind <kind>Filter by resource kind
--flint-path <path>Filter by Flint path

flint blacksmith kill

flint blacksmith kill [options] <target>

Terminate and deregister a resource by token or Flint path

ArgumentDescription
targetResource token or Flint path

flint blacksmith reload-plugins

flint blacksmith reload-plugins [options] [target]

Reload the NUU Flint plugin in every open Obsidian vault

ArgumentDescription
targetOptional Flint path to target one vault

flint blacksmith restart-server

flint blacksmith restart-server [options] [target]

Restart flint-server daemons: graceful shutdown, then respawn via Blacksmith

ArgumentDescription
targetResource token or Flint path
OptionDescription
--allRestart every flint-server

flint blacksmith restart-steel

flint blacksmith restart-steel [options] [target]

Restart the one Steel of this computer with the active steel binary: stop it, and Blacksmith starts it again on the same port

ArgumentDescription
targetResource token, or the path of a Flint that the Steel serves (default: the Steel of this computer)
OptionDescription
--allRestart every Steel that Blacksmith registers

flint blacksmith stop

flint blacksmith stop [options]

Stop the Blacksmith daemon

flint blacksmith restart

flint blacksmith restart [options]

Restart the Blacksmith daemon

flint blacksmith logs

flint blacksmith logs [options]

Print the Blacksmith log

OptionDescription
-n, --lines <count>Number of lines to print (default: "80")

flint setup

flint setup [options] [command]

Set up this machine in seven steps: your Name and the machine, the Git author, the tools, the agent default, your Computer Flint, the Guide, and the open of your Computer Flint with your first agent session. Setup needs internet access: with no network it stops before the first step

OptionDescription
--name <name>Your Name (the author of your notes)
--machine-name <name>The branch prefix of this machine (default: from the hostname)
--machine-proper-name <name>The machine display name (the name people read, such as "Ada Laptop"). It renames the Computer Flint too
--git-email <email>The email of the Git author, with no question. Setup writes it only when Git has no email
--no-openDo not open the Computer Flint in Obsidian (the onboarding session then runs in this terminal)
--guideClone the Guide of NUU Cognition with no question
--no-guideDo not clone the Guide (later: flint setup guide)
--fontInstall the terminal font JetBrainsMono Nerd Font with no question
--no-fontDo not install the terminal font (later: flint setup font)
-y, --yesAsk no question. Every open input takes its default, setup installs the terminal font, and setup clones the Guide
--jsonOutput one JSON result envelope on stdout. Ask no question. The text for a person goes to stderr

Subcommands: shell-integration, url-handler, computer, guide, font, onboard, handoff.

flint setup shell-integration

flint setup shell-integration [options]

Install the Flint and Orbh integration into your shell rc

OptionDescription
--shell <shell>Target shell: zsh, bash, fish (default: auto-detect)
--applyWrite the change without prompting (backs up the rc file first)
--dry-runShow what would change without writing or prompting
--printPrint the integration block for the detected shell and exit

flint setup url-handler

flint setup url-handler [options]

Register flint:// URLs with the desktop (Linux only)

OptionDescription
--dry-runPrint the desktop entry without writing it

flint setup computer

flint setup computer [options]

Make the Computer Flint of this machine. One machine has one

OptionDescription
--createMake a new Computer Flint. This is the default; the flag stays for scripts
--convert <flint>Retired: setup makes a new Computer Flint only. Use flint convert <flint> --to computer
--path <dir>The parent directory of a new Computer Flint (default: the home directory; with NUU_HOME set, the folder above it)
--dry-runSay what would be done and change nothing
--show-claimShow the claim of the Computer Flint of this machine, and say when its Flint is gone
--release-stale-claimRelease the claim when its Flint is gone. A claim that a Computer Flint holds is never released
--jsonOutput one JSON line on stdout. The text for a person goes to stderr

flint setup guide

flint setup guide [options]

Clone the Guide of NUU Cognition into the home directory. Ask it Flint questions with an agent

OptionDescription
--jsonOutput one JSON line on stdout. The text for a person goes to stderr

flint setup font

flint setup font [options]

Install the terminal font JetBrainsMono Nerd Font. The Obsidian terminal shows the glyphs of the agent titles with it

OptionDescription
--jsonOutput one JSON line on stdout. The text for a person goes to stderr

flint setup onboard

flint setup onboard [options]

Start or resume the onboarding session in your Computer Flint: in an Obsidian terminal tab, else in this terminal

OptionDescription
--handoff <file>The handoff file of the setup agent (flint-setup-handoff/0.1). The session reads its note first
--target <target>The Orbh target: a runtime (its default profile) or runtime/profile (default: the default target list)
--no-openDo not use Obsidian: the session runs in this terminal
--printPrint the plan and write nothing
--jsonOutput one JSON line on stdout. The text for a person goes to stderr. Never uses this terminal

flint setup handoff

flint setup handoff [options] [command]

The setup handoff of an agent-driven setup: check a handoff file

Subcommands: check.

flint setup handoff check
flint setup handoff check [options] <file>

Check a setup handoff file (JSON, spec flint-setup-handoff/0.1). Writes nothing

ArgumentDescription
fileThe setup handoff file
OptionDescription
--jsonOutput one JSON line on stdout. The text for a person goes to stderr
Exit 0 when the file is a valid handoff. Exit 2 when it is missing, cannot be
read, or does not fit the spec; the reason names the first bad field.

flint doctor

flint doctor [options]

Check this machine and the current Flint, and give one next command for each problem. Starts no agent

OptionDescription
-p, --path <dir>Check the Flint at this path (default: the Flint of the working folder)
--jsonPrint the checks as one JSON value
The checks: your identity and the NUU home, Git, Node.js, Obsidian, the
terminal of Obsidian (its PATH finds node and flint, its font, and python3),
the agent (the default target list of Orbh), the launcher record, the
Blacksmith daemon (a read: it starts no daemon), the Computer Flint, the Flint
registry, the Flint version (it names a newer release and never fails for it),
and the Orbh profiles.
Inside a Flint: its lock, the layout of flint.toml, its sync plan, its modules,
its Git state, and its Obsidian payload.
A check that needs judgement names flint fix; then the doctor writes one failure
record for it. It writes nothing else. Exit 0 when each check passes, else 1.

flint fix

flint fix [options] [record]

Start an agent that repairs the last failure of a Flint command (a repair session)

ArgumentDescription
recordThe failure record to repair: a number of flint fix --list (1 is the newest), a record id, or a record file
OptionDescription
--listList the failure records of this machine
--jsonWith --list: print one JSON value
When flint sync, flint create, flint git sync, flint shard install, flint setup,
or flint tinderbox sync fails, Flint writes a failure record and prints
"Or: flint fix". flint fix starts an interactive Orbh session on the default
target in your Computer Flint. The session reads the record and follows the
repair skill of the Flint shard. flint doctor checks this machine and starts no agent.
To report the failure to NUU Cognition: flint feedback --bug --with-failure.

flint feedback

flint feedback [options] [text...]

Send feedback about Flint to NUU Cognition: a bug, an idea, or a question

ArgumentDescription
textThe feedback. With no text, a terminal asks for it
OptionDescription
--bugThe feedback is a bug report
--ideaThe feedback is an idea
--questionThe feedback is a question
--title <text>The title of the report (default: the first line of the text)
--with-failureAdd the facts of the newest failure record of flint fix: the command words, the exit code, the error code, the version, and the time
--emailSend it as an email to hello@nuucognition.com in place of a GitHub issue
--no-openPrint the report and the link, and open nothing
-y, --yesOpen the link with no question
--jsonPrint the report and the link as one JSON value; opens nothing without --yes
flint feedback builds a report: your text, the kind, the Flint version, the OS
and the arch, and the Node.js version. It shows the report and asks before it
opens anything. Then your browser opens a new issue of
NUU-Cognition/flint-public with the report filled in, and you submit it.
--email opens an email to hello@nuucognition.com in your mail app.
Flint sends nothing itself.
Flint removes some secrets, but not all. Read the report.
Remove each secret before you send it.
Each line of your text that has a secret key, a secret flag, or an
Authorization or Cookie header loses the rest of the line. Private key blocks,
the user information of URLs, known tokens, and home folder paths go too.
--with-failure adds only the facts of the newest failure record (flint fix
--list): the command words, the exit code, the error code, the Flint version,
and the time. It adds no arguments, no output, no reason, and no paths.
A local copy of each report goes to the NUU home (flint/feedback/).
With no terminal, the command prints the report and the link only.

Examples:
  flint feedback --bug "flint sync stops on a fresh clone" --with-failure
  flint feedback --idea "A flint sync --watch mode"
  flint feedback --question "How do I share a shard with my org?" --no-open
To repair a failure on this machine, run flint fix.

flint git

flint git [options] [command] [args...]

Git operations for the Flint: init, sync, merge, resolve, publish, or passthrough to git

ArgumentDescription
argsRaw git arguments (passthrough); bare flint git shows the Flint git status
Anything that is not a listed subcommand passes through to git, run at the Flint root.

Examples:
  flint git status
  flint git sync -m "polish docs"
  flint git publish git@github.com:owner/repo.git

Subcommands: init, sync, merge, resolve, publish.

flint git init

flint git init [options]

Initialize a git repository with the Flint Git policy: .gitignore, .gitattributes, and rerere

flint git sync

flint git sync [options]

Exchange history with origin: checkpoint, fetch, integrate, run the local sync, push

OptionDescription
-m, --message <msg>Custom commit message
--replayAfter a remote history rewrite, replay local-only commits onto the new history
--force-remoteTake the remote as truth: keep local work that merges, discard what does not
--force-localTake the local side as truth: overlapping changes resolve in favour of local commits
--no-syncTransport only: do not run the local sync
--continueContinue a sync halted on a conflict (a bare re-run also continues)
--abortAbort a halted sync: stop the in-progress rebase and restore the branch
--jsonPrint the operation report as JSON (with --abort: one JSON value)
Checkpoints all changes, fetches and diagnoses divergence, rebases or
fast-forwards, runs the local sync (`flint sync`), checkpoints the writes of
the local sync, and pushes. The push runs also when the local sync fails;
the writes of a failed local sync stay uncommitted, and the push sends the
integrated history as it is: when origin moved during that sync, the push is
rejected, and the next `flint git sync` sends it. `--no-sync` is transport
only. If the remote history was rewritten (force-push), sync realigns
automatically when no local-only commits exist, or halts and asks for
--replay to carry local commits over.

--force-remote makes the fetched remote branch the source of truth. Local
commits that replay cleanly are kept; overlapping changes are resolved in
favour of the remote, and anything that still won't merge is discarded.
A backup ref preserves committed parent history before integration.
Commit or stash changes in nested repositories before you use this flag.

--force-local is the mirror image: overlapping changes resolve in favour of
your local commits. Remote history is never rewritten — remote commits stay
in the base; only conflicting content takes the local side.

A conflict halts before the local sync. Edit the files (or use
`flint git resolve`), then re-run `flint git sync` (or `--continue`): it
finishes the integrate, runs the local sync, and pushes. `--abort` restores
the pre-sync branch and runs no sync. `--continue` does not take --replay,
--force-remote, or --force-local.

A git merge, cherry-pick, or revert that is in progress stops the sync
with exit 2, and nothing changes. Finish it or abort it with git first.

flint git merge

flint git merge [options]

Integrate with origin and run the local sync, with no push: checkpoint, fetch, integrate, run the local sync

OptionDescription
-m, --message <msg>Custom commit message
--replayAfter a remote history rewrite, replay local-only commits onto the new history
--force-remoteOverlapping changes resolve in favour of the remote
--force-localOverlapping changes resolve in favour of local commits
--no-syncTransport only: do not run the local sync
--jsonPrint the operation report as JSON
`flint git sync` with no push: it checkpoints, fetches, integrates, runs the
local sync, and checkpoints the writes of the local sync. Use it to converge
with the remote, inspect the result, then publish with `flint git sync`. A
conflict halts exactly like sync; resolve and re-run, or `flint git sync --abort`.

flint git resolve

flint git resolve [options] [paths...]

During a conflict halt, resolve files by taking one side whole

ArgumentDescription
pathsFiles to resolve (default: every conflicted file)
OptionDescription
--localTake your local version of the paths
--remoteTake the remote version of the paths
Only valid while a sync is halted on a conflict (mid-rebase). Takes the
named side of each file whole — no marker editing, and it works for binary
files. A path is relative to the working directory. When every conflict is
resolved, run `flint git sync` to continue.

flint git publish

flint git publish [options] <url>

Publish this Flint repository to a remote repository

ArgumentDescription
urlRemote repository URL
OptionDescription
--yesConfirm a change to the origin URL

flint helper

flint helper [options] [command]

Helper utilities for Flint workflows

Subcommands: type, artifact, rename, delete, router, stitch, uuid, id, pins.

flint helper type

flint helper type [options] [command]

Type-specific helpers

Subcommands: newnumber.

flint helper type newnumber
flint helper type newnumber [options] <type>

Get the next available number for a typed artifact

ArgumentDescription
typeType name (Task, Report, Notepad, Increment, etc.)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--rawOutput raw number without padding

flint helper artifact

flint helper artifact [options] [command]

Create numbered artifacts

Subcommands: create.

flint helper artifact create
flint helper artifact create [options] [type]

Reserve a number and write an artifact

ArgumentDescription
typeArtifact type name
OptionDescription
--type <name>Artifact type name
--title <text>Artifact title (required)
--folder <path>Artifact folder under Mesh
--content-file <path>Complete file content with number, id, name, and author tokens
-p, --path <dir>Path to Flint (default: auto-detect)
--jsonPrint one JSON result

flint helper rename

flint helper rename [options] <old> <new>

Rename a Mesh artifact and rewrite all wikilinks pointing to it

ArgumentDescription
oldCurrent Mesh name (e.g. "(Task) 042 Old Title")
newNew name — full Mesh name or just the title portion
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint helper delete

flint helper delete [options] <name>

Delete a Mesh artifact and strip every frontmatter wikilink pointing to it

ArgumentDescription
nameMesh name of the artifact (e.g. "(Task) 042 Old Title")
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--archiveMove the artifact to Mesh/Archive/ instead of hard-deleting

flint helper router

flint helper router [options] [command]

Local HTTP broker that proxies orbh launches to running Obsidian vaults

Subcommands: start.

flint helper router start
flint helper router start [options]

Start the broker on 127.0.0.1:10003 (override with --port)

OptionDescription
-p, --port <port>Port to listen on (default: "10003")
--allow-origin <origin...>Additional browser origins allowed by CORS (localhost origins are always allowed)

flint helper stitch

flint helper stitch [options] <name>

Stitch a Mesh artifact with every artifact it wikilinks to and copy the result to the clipboard

ArgumentDescription
nameMesh artifact title (or a path containing "/" for a file on disk)
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--printPrint the stitched output to stdout instead of copying
--also-printCopy to clipboard AND print to stdout

flint helper uuid

flint helper uuid [options]

Generate a UUID v4 (for artifact id fields)

flint helper id

flint helper id [options]

Copy this Flint's id (from flint.json) to the clipboard

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--printPrint the id to stdout instead of copying

flint helper pins

flint helper pins [options] [command]

Manage Markdown pins for an Orbh session

Subcommands: set, add, remove, list, clear.

flint helper pins set
flint helper pins set [options] <files...>

Replace the ordered pin list

ArgumentDescription
filesMarkdown paths relative to the Flint root
OptionDescription
--session <id>Session ID (default: ORBH_SESSION_ID)
-p, --path <dir>Flint root (default: the current session workspace)
--orb-root <dir>Use an explicit Orb store
--at <scope>Use a named store: flint:<name> or machine
flint helper pins add
flint helper pins add [options] <files...>

Append files without duplicates

ArgumentDescription
filesMarkdown paths relative to the Flint root
OptionDescription
--session <id>Session ID (default: ORBH_SESSION_ID)
-p, --path <dir>Flint root (default: the current session workspace)
--orb-root <dir>Use an explicit Orb store
--at <scope>Use a named store: flint:<name> or machine
flint helper pins remove
flint helper pins remove [options] <files...>

Remove files from the list

ArgumentDescription
filesMarkdown paths relative to the Flint root
OptionDescription
--session <id>Session ID (default: ORBH_SESSION_ID)
-p, --path <dir>Flint root (default: the current session workspace)
--orb-root <dir>Use an explicit Orb store
--at <scope>Use a named store: flint:<name> or machine
flint helper pins list
flint helper pins list [options]

Print the pin list as JSON

OptionDescription
--session <id>Session ID (default: ORBH_SESSION_ID)
-p, --path <dir>Flint root (default: the current session workspace)
--orb-root <dir>Use an explicit Orb store
--at <scope>Use a named store: flint:<name> or machine
flint helper pins clear
flint helper pins clear [options]

Clear the pin list

OptionDescription
--session <id>Session ID (default: ORBH_SESSION_ID)
-p, --path <dir>Flint root (default: the current session workspace)
--orb-root <dir>Use an explicit Orb store
--at <scope>Use a named store: flint:<name> or machine

flint features

flint features [options]

List features and their availability

flint where

flint where [options]

Show which artifact this CLI is running and whether it is stale

OptionDescription
--jsonPrint as JSON

flint env

flint env [options] [command]

Show the build, the data mode, and the services that this CLI uses; switch a dev build between dev and prod data

OptionDescription
--jsonOutput as JSON

Subcommands: use, clear.

flint env use

flint env use [options] <mode>

Store the data mode of the dev builds of this machine: dev or prod

ArgumentDescription
modedev or prod
OptionDescription
--jsonOutput as JSON

flint env clear

flint env clear [options]

Remove the switch file: the dev builds of this machine use dev data again

OptionDescription
--jsonOutput as JSON

flint whoami

flint whoami [options]

Show your Name, this machine, its org, your NUU account, and the enrollments of this machine

OptionDescription
--jsonOutput as JSON

flint auth-status

flint auth-status [options]

Show NUU account authentication status

OptionDescription
--jsonOutput as JSON

flint login

flint login [options]

Log in to your NUU account. The account publishes shards (flint shard release). It does not put this machine in an org

OptionDescription
--verboseShow detailed progress output

flint logout

flint logout [options]

Log out of your NUU account: revoke this machine's login and remove its session

OptionDescription
--jsonOutput as JSON

flint foundation

flint foundation [list|inspect|logs|ghosts|totals|prune|storage|top|help|version] [flags]

The process registry of NUU services and their memory usage.

OptionDescription
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.
Without a command, flint foundation runs list.

Subcommands: list, inspect, logs, ghosts, totals, prune, version, storage, top.

flint foundation list

flint foundation list [--service <service>] [--owner <kind>:<id>] [--all] [--tree]

List the registered NUU processes, their state, and their RSS. The default command.

OptionDescription
--service <service>Only the processes of this service.
--owner <kind>:<id>Only the processes of this owner. The ID must match exactly.
--allAlso show the stale records.
--treeAlso show the unregistered descendants of the registered processes.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation inspect

flint foundation inspect <PID|registration-UUID> [--tree]

Show one process: identity, record, owner, launch parent, observed parent, memory, and log path. A UUID selects its record, also a stale one. A PID selects the current process.

OptionDescription
--treeAlso show the descendants and the RSS sum of the tree.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation logs

flint foundation logs [<registration-UUID>] [--service <service>] [--role <role>] [--event <prefix>]... [--level <level>] [--since <time>] [--limit <n>] [--list]

Read the event log of a NUU process: its events, filtered by service, event, level, and time. A log is <NUU home>/foundation/logs/<registration UUID>/events.jsonl. events.1.jsonl holds the lines before the last rotation. A process writes a log when it registers with events: true. A log stays after its process exits. Without a UUID, logs reads the newest log that matches --service and --role, of a live or an exited process. The prefix sync selects the events sync and sync.command.applied. It does not select syncx. prune --apply removes the logs of exited processes that are old or above the byte budget.

OptionDescription
--listList the logs, newest first, with their state and size.
--service <service>Read the newest log of this service. With --list: only the logs of this service.
--role <role>Read the newest log of this role. With --list: only the logs of this role.
--event <prefix>Only the events whose name starts with these whole words. Repeat it for more prefixes.
--level <level>Only the events of this level or higher: debug, info, warn, or error.
--since <time>Only the events at or after this time: a duration (30s, 10m, 2h, 1d) or an ISO time.
--limit <n>Show the last <n> matching events, from 0 to 1000000. 0 shows all. Default: 200.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation ghosts

flint foundation ghosts [--root <absolute-repo-or-install-root>]...

Find running processes of this user with NUU evidence and no verified record. The scan is heuristic. An unregistered detached child without current ancestry or recognizable arguments can remain undiscovered. Candidates need review. The command stops no process.

OptionDescription
--root <path>Also accept NUU entrypoints below this absolute root. Repeat it for more roots.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation totals

flint foundation totals [--service <service>] [--owner <kind>:<id>] [--tree]

Sum the RSS of the verified current processes, once per process, by service. RSS can count shared pages more than once.

OptionDescription
--service <service>Only this service.
--owner <kind>:<id>Only the processes of this owner.
--treeAlso count the unregistered descendants, in the service of their registered ancestor.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation prune

flint foundation prune [--apply]

Preview the stale records, the old temporary files, and the old event logs that can be removed. The event log of an exited process goes when its newest file is older than 7 days. When all logs use more than 200 MiB, the oldest logs of exited processes go until the sum is 200 MiB or less. The log of a live or unknown process always stays. Prune removes only events.jsonl and events.1.jsonl, and then the empty folder. Prune never signals a process and never changes a service registry.

OptionDescription
--applyRemove them after a fresh check. Unknown and invalid records stay.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation version

flint foundation version

Show the CLI version, the record protocol, and the output schema.

OptionDescription
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation storage

flint foundation storage [--no-flints] [--top <n>] [--timeout <ms>]

Measure the disk usage of the NUU home, of the Flints of this machine, and of their Orbh spools. The size is the disk usage: the allocated blocks. The measure does not follow a symbolic link, stays on the device of each area, and counts a file with more than one hard link one time. The command deletes nothing.

OptionDescription
--no-flintsMeasure only the NUU home. Do not read the Flint registry.
--top <n>Show the <n> largest spools of each Flint. Default: 5.
--timeout <ms>Stop the measure after <ms> milliseconds. Default: 20000.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

flint foundation top

flint foundation top [--interval <ms>] [--service <service>] [--owner <kind>:<id>] [--tree] [--sort cpu|rss|pid|service] [--no-storage] [--no-mouse] [--once]

Show a live screen of the NUU processes with their CPU, their memory, and the storage sizes. On a terminal, top shows a live view until you press q or Ctrl-C. Press ? for the keys. Tab moves the focus between the process table and the storage panel. The arrow keys, j, k, g, G, PgUp, and PgDn move the panel with the focus. The storage panel lists all areas; it starts folded. + (or =) opens the selected row and - folds it; e opens all rows, c folds all rows. Enter, the left and right arrow keys, and a click on [+] or [-] also open and fold a row. z gives the panel with the focus all rows. The mouse wheel scrolls the panel under the pointer. A click gives a panel the focus and selects a row. The key m turns the mouse reports off, so that the terminal can select text. You can also hold Option (macOS) or Shift to select text. With --json, --once, or no terminal, top takes two samples one interval apart, measures the storage, prints one reply, and ends. An agent uses top --json. CPU: 100 % is one full core. The CPU of the second sample is the difference of the two samples. RSS can count shared pages more than once.

OptionDescription
--interval <ms>The time between two samples, from 250 to 60000. Default: 2000.
--service <service>Only the processes of this service.
--owner <kind>:<id>Only the processes of this owner.
--treeAlso show the unregistered descendants of the registered processes.
--sort <key>Sort the processes by cpu, rss, pid, or service. Default: cpu.
--no-storageDo not measure the storage. In the live view, the key d starts it.
--no-mouseDo not turn on the mouse reports in the live view. The key m turns them on.
--onceTake two samples, print one text frame, and end.
--jsonPrint one JSON object (schema foundation-cli/0.1).
--home <NUU-home>Read this NUU home. Default: $NUU_HOME, else ~/.nuucognition.

nuu

nuu [options] [command]

NUU ecosystem meta CLI

OptionDescription
--verboseShow stack traces for errors

Subcommands: setup, login, logout, whoami, env, config, org, machine, home, places, client, resolve, session, station, topology, net, trace, styles.

nuu setup

nuu setup [options]

Set up this machine: your Name, the machine display name, and the Git author (shared by every NUU CLI; needs no network)

OptionDescription
--name <name>Your Name (the author of your notes)
--machine-name <name>The branch prefix of this machine (default: from the hostname)
--machine-proper-name <name>The machine display name (the name people read, such as "Ada Laptop")
-y, --yesAsk no question. Every open input takes its default
--jsonOutput one JSON result envelope. Never asks a question

nuu login

nuu login [options]

Log in to your NUU account. The account publishes shards (flint shard release). It does not put this machine in an org

OptionDescription
--verboseShow detailed progress output

nuu logout

nuu logout [options]

Log out of your NUU account: revoke this machine's login and remove its session

OptionDescription
--jsonOutput as JSON

nuu whoami

nuu whoami [options]

Show your Name, this machine, its org, your NUU account, and the enrollment of this machine

OptionDescription
--jsonOutput as JSON

nuu env

nuu env [options] [command]

Show the build, the data mode, and the services that this CLI uses; switch a dev build between dev and prod data

OptionDescription
--jsonOutput as JSON

Subcommands: use, clear.

nuu env use

nuu env use [options] <mode>

Store the data mode of the dev builds of this machine: dev or prod

ArgumentDescription
modedev or prod
OptionDescription
--jsonOutput as JSON

nuu env clear

nuu env clear [options]

Remove the switch file: the dev builds of this machine use dev data again

OptionDescription
--jsonOutput as JSON

nuu config

nuu config [options] [command]

The NUU config of this machine (name, machine-name, org, shared)

Subcommands: name, machine-name, org, shared.

nuu config name

nuu config name [options] [name]

Get or set your Name: how you appear as the author of notes on this machine

ArgumentDescription
nameName to store (e.g. "Nathan Luo")
OptionDescription
--unsetUnset the stored name
--jsonOutput as JSON

nuu config machine-name

nuu config machine-name [options] [name]

Get or set the branch prefix of this machine (machine-name): the prefix of worktree branches

ArgumentDescription
nameThe branch prefix to store
OptionDescription
--unsetUnset the branch prefix; the hostname is the default
--jsonOutput as JSON

nuu config org

nuu config org [options] [command]

The org of this machine: new Flints get it. Absent means local (no org)

Subcommands: show, set, unset.

nuu config org show
nuu config org show [options]

Show the org of this machine

OptionDescription
--jsonOutput as JSON
nuu config org set
nuu config org set [options] <slug>

Set the org of this machine. The id comes from --id, the enrollment of this machine, or a Flint of this machine with that org

ArgumentDescription
slugThe org slug, for example nuucognition
OptionDescription
--id <uuid>The id of the org. The admin of the org gives it. Not needed when this machine knows the org
--jsonOutput as JSON
nuu config org unset
nuu config org unset [options]

Remove the org of this machine: new Flints are local (no org). The Flints, the enrollment, and the account do not change

OptionDescription
--jsonOutput as JSON

nuu config shared

nuu config shared [options] [command]

Every key of the NUU config

Subcommands: get, set, unset.

nuu config shared get
nuu config shared get [options] <key>

Get a value of the NUU config

ArgumentDescription
keyConfig key
nuu config shared set
nuu config shared set [options] <key> <value>

Set a value of the NUU config

ArgumentDescription
keyConfig key
valueA JSON number or true/false, else text
nuu config shared unset
nuu config shared unset [options] <key>

Unset a value of the NUU config

ArgumentDescription
keyConfig key

nuu org

nuu org [options] [command]

The orgs of your NUU account (the account service). The org of this machine: nuu config org show

Subcommands: list, create, get, members, invite, invitations, accept.

nuu org list

nuu org list [options]

List the orgs of your NUU account, with the account id of each

OptionDescription
--jsonOutput as JSON

nuu org create

nuu org create [options] <slug> <name>

Create an org in your NUU account

ArgumentDescription
slugThe org slug (a-z, 0-9, hyphens)
nameThe name that people read
OptionDescription
--personalCreate a personal org
--jsonOutput as JSON

nuu org get

nuu org get [options] <slug>

Show one org of your NUU account

ArgumentDescription
slugThe org slug
OptionDescription
--jsonOutput as JSON

nuu org members

nuu org members [options] <org>

List the members of one org of your NUU account

ArgumentDescription
orgThe org slug
OptionDescription
--jsonOutput as JSON

nuu org invite

nuu org invite [options] <org> <email>

Invite a person to one org of your NUU account

ArgumentDescription
orgThe org slug
emailThe email of the person
OptionDescription
--role <role>Role (member or admin) (default: "member")
--jsonOutput as JSON

nuu org invitations

nuu org invitations [options]

List your open invitations to orgs

OptionDescription
--jsonOutput as JSON

nuu org accept

nuu org accept [options] <invitation-id>

Accept an invitation to an org

ArgumentDescription
invitation-idThe id of the invitation (nuu org invitations)
OptionDescription
--jsonOutput as JSON

nuu machine

nuu machine [options] [command]

Show this machine's identity (read only)

OptionDescription
--jsonOutput one JSON result envelope

Subcommands: id.

nuu machine id

nuu machine id [options]

Print the machine id alone. Read only: exit 1 when no id exists yet

nuu home

nuu home [options] [command]

The NUU home: its version, its layout, and its migration

Subcommands: doctor, migrate, paths.

nuu home doctor

nuu home doctor [options]

Sort every entry of the home into known, mirror, stale, foreign, unknown, and wrong-mode. Read only. Exit 1 when not clean

OptionDescription
--jsonOutput the report as JSON

nuu home migrate

nuu home migrate [options]

Bring the home to the version this build needs: PLAN, CHECK, BACKUP, VERIFY BACKUP, APPLY. A refusal in CHECK means nothing happens

OptionDescription
--dry-runStop after CHECK: print the plan and every refusal, change nothing. Exit 1 when a real run would refuse. Works with --rollback too
--jsonOutput the result as JSON
--rollback <dir>Restore the home from one backup directory (a path under <home>/backups)
--break-lockRemove a stale migration lock. Refuses while its pid lives. With --dry-run it only reports

nuu home paths

nuu home paths [options]

Print every path of the home for this build

OptionDescription
--jsonOutput the layout as JSON

nuu places

nuu places [options] [command]

Manage the roster of place roots on this machine

OptionDescription
--refreshAsk every place for its identity first
--verboseShow the SOURCE column: the roster value of each member
--jsonOutput as JSON

Subcommands: list, add, remove, import.

nuu places list

nuu places list [options]

List the roster roots

OptionDescription
--jsonOutput as JSON

nuu places add

nuu places add [options] <path>

Add a root path

ArgumentDescription
pathFlint or tinderbox root
OptionDescription
--kind <kind>flint or tinderbox (default: "flint")

nuu places remove

nuu places remove [options] <path>

Remove a root path

ArgumentDescription
pathRoot to remove

nuu places import

nuu places import [options]

Import roots from the legacy flint/registry.json

nuu client

nuu client [options] [command]

Run nclient, the NUU client of this machine

Subcommands: serve, start, port, stop, status, install-service, enroll.

nuu client serve

nuu client serve [options]

Run the nclient daemon of this dev build in the foreground (home ~/.nuucognition/nclient-dev)

OptionDescription
--port <port>Loopback port for the FIRST start of this home (then NCLIENT_PORT, then 13032). It is recorded; a later start must agree with it
--allow-sourceRun the daemon from TypeScript source through tsx, in the foreground, to debug it. Never for a standing daemon: it warns every minute
--no-cgroup-guardRun the daemon outside a systemd unit with MemoryMax and TasksMax. For a test or a debug session only: it warns every minute

nuu client start

nuu client start [options]

Start the nclient daemon of this dev build in the background (home ~/.nuucognition/nclient-dev, default port 13032)

OptionDescription
--port <port>Loopback port for the FIRST start of this home (then NCLIENT_PORT, then 13032). It is recorded; a later start must agree with it
--no-cgroup-guardWith no unit installed: start the daemon outside a systemd unit. For a test or a debug session only; the daemon warns every minute

nuu client port

nuu client port [options]

Print the one daemon port of this home. The bound port is the lease of the home, and the recorded port is immutable in code. To change it by hand: stop the daemon (nuu client stop), delete ~/.nuucognition/nclient-dev/port, and start with --port <n>

nuu client stop

nuu client stop [options]

Ask the nclient daemon to stop (POST /stop with the stop token of this home), and wait until it is gone. It first finishes the requests in progress. No signal is sent

OptionDescription
--forceKill the daemon (SIGKILL) when it is not gone after the wait, or when it hangs. Only with /proc evidence that the pid runs the nclient serve command of this installation and owns the listening socket of this home
--wait <seconds>How long to wait for the requests in progress (default 155)

nuu client status

nuu client status [options]

Show whether the daemon runs, and the machine it answers for

OptionDescription
--jsonOutput as JSON

nuu client install-service

nuu client install-service [options]

Write, enable, and start the systemd user unit of this dev build, with memory and task limits (MemoryMax=1500M, TasksMax=96, KillMode=control-group). A standing daemon on a real machine always runs under it

OptionDescription
--devConfirm that you mean the DEV unit (nclient-dev.service). A dev build needs it; a prod build refuses it
--uninstallStop and disable the unit, and remove its file
--dry-runPrint the unit and the commands, and change nothing
--jsonOutput as JSON

nuu client enroll

nuu client enroll [options]

Enroll this machine in one org of NUU Network with the enrollment secret of the org. No NUU account is needed

OptionDescription
--network <prod|dev|url>The network: prod, dev, or the URL of a deployment (default: the build mode of this CLI)
--org <slug>The org, required: its slug or its id. The secret is the enrollment secret of THIS org
--secret-file <path>The file with the enrollment secret of the org. The admin of the org gives it (default ~/.nuucognition/nclient-dev/secrets/enroll-secret)
--jsonOutput as JSON

nuu resolve

nuu resolve [options] <ref>

Resolve an entity reference through nclient

ArgumentDescription
refAn address, for example @/flint/nuu-test or @/flint/nuu-test/session/<uuid>
OptionDescription
--verb <verb>lookup, locate, describe, or children (default: "lookup")
--to <rung>The rung: ping or locate (default: "locate")
--child-type <type>For children: keep only this type slug
--jsonOutput the request and the response as JSON

nuu session

nuu session [options] [command]

Orbh sessions by address

Subcommands: start, transfer.

nuu session start

nuu session start [options] <flint-ref>

Start a headless Orbh session in a Flint, and print its address

ArgumentDescription
flint-refThe address of the Flint, for example @/flint/nuu-test
OptionDescription
--target <runtime/profile>The Orbh launch target, for example codex/lunl
--prompt <text>The prompt of the session
--title <title>The title of the session
--jsonOutput the request and the response as JSON

nuu session transfer

nuu session transfer [options] <session-ref>

Copy a session of a Flint on this machine to a Flint at another place, and print the address of the copy. The source session stays. The target never replaces a file: remove an old copy there by hand first.

ArgumentDescription
session-refThe address of the session, for example @/flint/nuu-test/session/<uuid>
OptionDescription
--to <flint-ref>The target Flint with its place, for example @/flint/nuu-test#nuu-2
--title <title>The title of the copy
--no-inlineSend the bundle through the storage of NUU Network, also a small one
--jsonOutput the outcome as JSON

nuu station

nuu station [options] [command]

Orbh stations by address

Subcommands: send, list.

nuu station send

nuu station send [options] <station-ref>

Put one item in the queue of a station, and print the item id

ArgumentDescription
station-refThe address of the station, for example @/flint/nuu-test/station/intake
OptionDescription
--text <text>The text of the item
--text-file <path>Read the text of the item from a file (UTF-8)
--jsonOutput the request and the response as JSON

nuu station list

nuu station list [options] <flint-ref>

List the stations of a Flint

ArgumentDescription
flint-refThe address of the Flint, for example @/flint/nuu-test
OptionDescription
--jsonOutput the request and the response as JSON

nuu topology

nuu topology [options]

Show the tree of this machine: org, machine, Tinderboxes and members, standalone Flints by type, runtimes. Read only

OptionDescription
--netAdd the other machines of the org, with the lease holder, the build, and the last heartbeat
--sessionsAdd the stations and the sessions of every LIVE Flint. A Flint that is not live is never asked
--jsonOutput the same tree as JSON, with full ids

nuu net

nuu net [options] [command]

NUU Network: the machines of your org, the grants between them, and the health of the link

Subcommands: machines, grant, revoke, forget, grants, health, org.

nuu net machines

nuu net machines [options]

List the machines of your org

OptionDescription
--jsonOutput as JSON

nuu net grant

nuu net grant [options] <subject-machine> <action>

Let another machine run an action on THIS machine. Writes the local policy rule and the server grant

ArgumentDescription
subject-machineThe name or id of the machine that receives the right, or * for every machine of your org
actionThe action, for example session.start
OptionDescription
--place <ref>Only for this place on this machine (default: every place)

nuu net revoke

nuu net revoke [options] <subject-machine> <action>

Remove a grant on THIS machine: the local policy rule and the server grant

ArgumentDescription
subject-machineThe name or id of the machine, or *
actionThe action
OptionDescription
--place <ref>Only the grant for this place (default: every grant for the subject and the action)

nuu net forget

nuu net forget [options] <machine>

Remove THIS machine from NUU Network. A machine removes only itself; an owner-level removal needs accounts and is out of scope

ArgumentDescription
machineThe name or id of this machine, as a check that you mean it

nuu net grants

nuu net grants [options]

List the grants where this machine is the target or the subject

OptionDescription
--jsonOutput as JSON

nuu net health

nuu net health [options]

Show the deployment, the org, the receiver lease of this machine, the other machines, the pending rows, and the last five failures

OptionDescription
--jsonOutput as JSON

nuu net org

nuu net org [options] [command]

The org of NUU Network: refresh the cached org slug of this machine; admin only: make an org, or replace its enrollment secret (needs the bootstrap secret of the deployment). The orgs of your NUU account: nuu org list

Subcommands: create, secret, refresh.

nuu net org create
nuu net org create [options] <slug>

Make one org. The org id is minted by the server and never changes; the slug is a cache that only the server admin corrects (orgs:renameSlug)

ArgumentDescription
slugThe org slug, for example nuucognition
OptionDescription
--title <title>The title, for example "NUU Cognition"
--id <uuid>The org id that another deployment minted. One org has one id in every environment (default: a new id)
--network <prod|dev|url>The network (default: the build mode of this CLI)
--bootstrap-secret-file <path>The file that holds the bootstrap secret of the deployment
--secret-out <path>Where the enrollment secret of the org is written, mode 600 (default ~/.nuucognition/nclient-dev/secrets/enroll-secret)
--jsonOutput as JSON
nuu net org secret
nuu net org secret [options] <org>

Replace the enrollment secret of one org. The old secret is dead; enrolled machines keep their tokens

ArgumentDescription
orgThe org slug or id
OptionDescription
--network <prod|dev|url>The network (default: the build mode of this CLI)
--bootstrap-secret-file <path>The file that holds the bootstrap secret of the deployment
--secret-out <path>Where the enrollment secret of the org is written, mode 600 (default ~/.nuucognition/nclient-dev/secrets/enroll-secret)
--jsonOutput as JSON
nuu net org refresh
nuu net org refresh [options]

Refresh the cached org slug of the enrollment of this home from NUU Network. The id never changes; no secret and no new token

OptionDescription
--jsonOutput as JSON

nuu trace

nuu trace [options] <request-id>

Show the path of one request: the local request log, the row in NUU Network, and the hops of the response

ArgumentDescription
request-idThe id of the request. nuu resolve --json and every log line give it
OptionDescription
--jsonOutput as JSON

nuu styles

nuu styles [options] [pattern]

Show the output patterns of every NUU CLI: refusal, warning, success, key/value

ArgumentDescription
patternOne pattern: refusal, warning, success, keyvalue
OptionDescription
--jsonPrint the envelope of the pattern

Tools for Developers

These commands serve the development of Flint: journey tests, entity debugging, the Steel UI, Steel Plates, the MCP server, and the local server.

flint entity

flint entity [options] [command]

Debug surfaces for the entity modules: ask one place, print the roster

Subcommands: ask, roster, answer.

flint entity ask

flint entity ask [options] <root> <verb> [ref]

Ask one Flint client at <root> one read verb about a reference

ArgumentDescription
rootThe Flint root, . for the current one
verbOne of describe, lookup, locate, children
refAn entity reference; optional for describe
OptionDescription
--to <rung>The rung: ping or locate (default: "locate")
--child-type <type>For children: keep only this type slug
--jsonOutput as JSON

flint entity roster

flint entity roster [options]

Print the places discovered from here and the source of each

OptionDescription
--jsonOutput as JSON

flint entity answer

flint entity answer [options]

Answer one entity Request for one Flint: JSON on stdin, JSON on stdout

OptionDescription
--root <path>The Flint root that answers

flint plate

flint plate [options] [command]

Manage Steel Plates

Subcommands: list, install, update, reinstall, dev, info.

flint plate list

flint plate list [options]

List installed Plates

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--jsonOutput as JSON
--wideRender full-width table output without narrow stacking

flint plate install

flint plate install [options] <name-or-source>

Install a Plate from GitHub releases

ArgumentDescription
name-or-sourcePlate slug or GitHub owner/repo
OptionDescription
--version <version>Install a specific version
-p, --path <dir>Path to flint (default: auto-detect)

flint plate update

flint plate update [options] [name]

Install the newest release of each Plate with no pin; a Plate with a version in flint.toml keeps it

ArgumentDescription
nameOptional plate slug
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint plate reinstall

flint plate reinstall [options] [name]

Reinstall Plates from GitHub releases (bypass version check)

ArgumentDescription
nameOptional plate slug
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint plate dev

flint plate dev [options] <name> [source]

Point a Plate at a local dev source — a vite dev-server URL or a plate checkout directory

ArgumentDescription
namePlate declaration name or manifest name
sourceDev source: http(s) URL of a plate dev server, or a directory containing plate.yaml
OptionDescription
--clearClear the dev source (both URL and path)
-p, --path <dir>Path to flint (default: auto-detect)

flint plate info

flint plate info [options] <name>

Show Plate details

ArgumentDescription
namePlate declaration name or manifest name
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint orbtest

flint orbtest [options] [command]

Journey testing: validate, run, diagnose, drift, regen, and document orbtest definitions

Subcommands: init, validate, check, upgrade, run, drift, regen, doctor, skills, author, register, snapshot, approve, page, behaviour, coverage, profile, environment, step, task, story, suite, requirement, settings, services, secret, baseline, runs, brief, components, fixture.

flint orbtest init

flint orbtest init [options]

Scaffold an orbtest/ folder of format 0.0.1 for one platform family: orbtest.toml with the format stamp, one environment under environments/ and one UI profile with the same id under ui/profiles/, one step under ui/steps/, the requirements of that platform under requirements/, empty ui/tasks/, stories/ and ui/fixtures/ folders, and .gitignore. web: profile web-desktop-chromium, step nav.goto, requirements node, probe-tool, playwright-chromium. terminal: profile cli-terminal, step cli.run, requirements node, terminal-program, and no browser. desktop: profile desktop-app, step app.restart, requirements hyprland, wtype, grim, atspi. The output ends with the next commands, each with --root

OptionDescription
--root <dir>Directory that will hold orbtest/ (default: cwd)
--platform <platform>Platform family of the scaffold profile: web, terminal, desktop (default: web)
--base-url <url>Web only. Root URL of the app under test (default: http://127.0.0.1:<port>)
--port <n>Web only. Port for the default base URL (default: 3000); cannot be combined with --base-url
--forceRewrite the scaffold files of the platform (or of the behaviour layer) when orbtest/ already exists; files outside the scaffold, including .local/, are left alone
--layer <layer>The layer to scaffold: ui, behaviour (default ui). behaviour: orbtest.toml and .gitignore when orbtest/ is new, environments/local.yaml, stories/example.hello.yaml, and behaviour/specs/example.hello.md with one case that needs no test code; an existing orbtest/ keeps its orbtest.toml and .gitignore

flint orbtest validate

flint orbtest validate [options]

Check orbtest definitions: schemas, references, route patterns, profile register, sources, check types (dom, route, sql, command), snapshot suites, stories, and the behaviour layer (specs, cases, kinds, fixtures, places, sidecars; its findings are warnings, and --strict makes them exit 2)

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--strictCount the findings of the behaviour layer as errors: exit 2 when there is one

flint orbtest check

flint orbtest check [options]

Describe an orbtest/ folder without loading it: the declared format against the format this CLI reads, and the folder against the layout of that format, the behaviour layer included (its findings are warnings; --strict makes them errors). Never writes.

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the report as JSON on stdout; human lines go to stderr
--strictCount the findings of the behaviour layer as errors: exit 2 when there is one (default: warnings)

flint orbtest upgrade

flint orbtest upgrade [options]

Run the definitions migration chain from the format the folder declares to the format this CLI reads, then stamp it

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--to <format>Target format (default: 0.0.1)
--dry-runPrint the file operations and the notes, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest run

flint orbtest run [options]

Execute journey tasks on a profile and write an append-only run record

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--profile <id>Profile to run on (default: the only registered profile)
--task <id...>Restrict to these task ids; combines with --story as a union
--story <id...>Restrict to the tasks of these story ids; combines with --task as a union
--input <key=value...>Task input overrides
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--jsonPrint the run record as JSON instead of a summary
--agent <kind[:target]>Agent for agentic steps and verification, e.g. orbh or orbh:claude/s5m (default: profile.agent, then orbtest.toml [agent] target)
--no-agentRun without an agent even if the profile declares one
--keep-servicesLeave profile.setup.start services running after the run
--jobs <n>Run tasks on up to <n> workers, each with its own services and browser; needs parallel on the profile (default 1)
--keep <n>After this run, keep only the newest <n> run directories, counting this one (default: orbtest.toml [runs] keep, else keep all)
--confirmAnchor every met task to the current commit and store each step's fingerprint (refuses with uncommitted changes)
--freezeAfter a met run, convert each agentic step's trace into deterministic steps and write a freeze bundle at .local/runs/<run-id>/<task-id>/bundle.json for register
--components <json>With --freeze: JSON map of locator description to repository path, as author takes it
--watchShow the run on the current display: a browser window for a web profile, a terminal window that mirrors the screen for a terminal profile. One worker; never with --confirm; the record is the same
--slow <ms>With --watch: milliseconds to wait before every browser action (default 250)
--hold <ms>With --watch: milliseconds the window stays open after the run (default 3000)

flint orbtest drift

flint orbtest drift [options]

Detect drift: diff each step's component since its task's confirmed commit (a testid locator goes stale only when its value leaves the file), fold in run signals, and mark stale steps

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--profile <id>Restrict to tasks on this profile (default: every profile)
--task <id...>Restrict to these task ids
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--jsonPrint the drift report as JSON instead of a table
--checkRead-only gate: write nothing, need no browser, exit 1 when a blocking task is stale or unconfirmed

flint orbtest regen

flint orbtest regen [options]

Regenerate a stale step from its description, or re-author a stale task

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--step <id>Regenerate one step: replay its task up to the step, run the description agentically, compare
--task <id>With --step: the task to replay (default: the first task on the profile that uses the step). Alone: re-author the task from its description
--profile <id>Profile to replay on (default: the only registered profile)
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--agent <kind[:target]>Agent for agentic steps and verification, e.g. orbh or orbh:claude/s5m (default: profile.agent, then orbtest.toml [agent] target)
--no-agentRun without an agent even if the profile declares one
--input <key=value...>Task input overrides
--jsonPrint the review bundle as JSON

flint orbtest doctor

flint orbtest doctor [options]

Diagnose a profile: environment requirements, services, setup command, app version pin, browser, agent, data sources. Plain doctor starts no service: on a profile that declares setup.start or setup.local_start, a failing setup verify and the app version check are skipped, not failed, and the line names doctor --start. Exit 0 when every other check passes

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--profile <id>Profile to check (default: all registered)
--startStart profile.setup.start services before checking, stop them after; setup verify and the app version check then run against them and fail for real
--keep-servicesWith --start, leave the services running afterwards
--setupIf checks fail, provision this machine from the requirements file (or the deprecated setup.script) through one Orbh session, then re-check
--setup-target <runtime/profile>Orbh target for the provisioning session (default: profile.agent.target, then orbtest.toml [agent] target, then claude/o5m)

flint orbtest skills

flint orbtest skills [options]

Print agent-facing documentation generated from the installed schemas, registries, and command tree

OptionDescription
--section <name>Print one section: atoms, fixtures, locators, platforms, steps, tasks, stories, profiles, verification, checks, sources, suites, commands, run-layout, behaviour
--jsonPrint the documentation data as JSON instead of markdown
--checkVerify the output lists every registered atom, convention, locator strategy, check type, source provider, platform, command, and behaviour term, and that every schema field has a description; exit 1 otherwise

flint orbtest author

flint orbtest author [options]

Run a brief as one agentic task and write a review bundle under .local/runs/author-<id>/

OptionDescription
--brief <file>Brief YAML: description, profile, story, inputs, seed, verify
--root <dir>Directory holding orbtest/ (default: cwd)
--profile <id>Profile to run on (default: brief.profile, else the only registered profile)
--input <key=value...>Brief input overrides
--components <json>JSON map of locator description to repository path, e.g. {"testid=browse-as-guest": "src/components/auth-gate.tsx", "*": "src/components/mesh-home/mesh-list.tsx"}
--from-run <dir>Convert the trace of an earlier author run instead of running the agent; rewrites that run's bundle.json
--final-route <url>With --from-run: the final route when run.json is missing
--agent <kind[:target]>Agent for the authoring step, e.g. orbh or orbh:claude/s5m (default: profile.agent, then orbtest.toml [agent] target)
--no-agentRun without an agent even if the profile declares one
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--jsonPrint the bundle as JSON instead of a summary

flint orbtest register

flint orbtest register [options]

Write a reviewed bundle into the definitions: an author bundle adds steps and a task, a freeze bundle replaces agentic steps of a task, a regen bundle sets fields (review only unless --approve)

OptionDescription
--bundle <dir>Directory holding bundle.json, e.g. orbtest/.local/runs/author-<id> or orbtest/.local/runs/<run-id>/<task-id>
--approveWrite the definitions; without it register prints the diff and exits 2
--root <dir>Directory holding orbtest/ (default: cwd)

flint orbtest snapshot

flint orbtest snapshot [options]

Capture snapshot suites on their profiles and compare each cell with its approved baseline

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--suite <id...>Restrict to these suite ids (default: every suite)
--profile <id>Restrict the matrix to one profile (default: every profile the selected suites name)
--entry <id...>Restrict to these entry ids within the selected suites
--input <key=value...>Suite input overrides
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--jsonPrint the run record as JSON instead of a summary
--agent <kind[:target]>Agent for agentic entry verification, e.g. orbh or orbh:claude/s5m (default: profile.agent)
--no-agentRun without an agent even if the profile declares one
--keep-servicesLeave profile.setup.start services running after the run

flint orbtest approve

flint orbtest approve [options]

Promote captures from a snapshot run to approved baselines, recording who approved them and when

OptionDescription
--run <id>Snapshot run id, the .local/runs/snapshot-<time> directory name (required)
--root <dir>Directory holding orbtest/ (default: cwd)
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--cell <suite/entry/profile...>Approve only these cells (default: every new and failed cell in the run)
--by <name>Approver name (default: the operator Name from flint whoami)
--jsonPrint the outcomes as JSON

flint orbtest page

flint orbtest page [options]

Write one static, read-only HTML page of the definitions: profiles, environments, stories, tasks, steps, suites, requirements, the behaviour layer (specs, cases, flags, newest runs, places, fixtures), and settings (default: orbtest/.local/runs/page/index.html)

OptionDescription
--out <path>Write the page to this file instead
--openOpen the page in the default browser ($BROWSER when set)
--runs <dir>Run record directory (default: <orbtest>/.local/runs)
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest behaviour

flint orbtest behaviour [options] [command]

Behaviour tests: one Markdown spec per behaviour under orbtest/behaviour/specs/, each ### heading one case, bound to test code in any language by the marker orbtest: <spec-id>/<case-id>, run in an environment and a place, with one run record and one report

Subcommands: list, show, run, bind, drift, heal, fixture, place.

flint orbtest behaviour list
flint orbtest behaviour list [options]

List the cases of every behaviour spec: id, kind, the criteria each proves, and the flags the files decide (invalid, unbound, quarantined, waived, repaired, ungated). Writes nothing.

OptionDescription
--story <id>Only the cases of the specs of this story
--kind <kind>Only the cases of this kind
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour show
flint orbtest behaviour show [options] <id>

Show one spec with its cases, or one case with its fields, gate, binding, flags, and resolved environment. Writes nothing.

ArgumentDescription
idA spec id (flint.home.guard) or a case id (flint.home.guard/home-is-read-at-call-time)
OptionDescription
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour run
flint orbtest behaviour run [options]

Run behaviour cases in their environment and place, write the run record and report.html under .local/runs/<run-id>/, and print report <path>. Exit 0 when no case of a blocking story failed, 1 when one ended fail, error, or budget_exceeded, 2 for a bad argument before any write, 3 when the place or the stage hook failed before any case.

OptionDescription
--spec <id...>Only the cases of these specs. Each filter narrows the selection; with no filter, every case runs
--case <id...>Only these cases (<spec-id>/<case-id>)
--story <id...>Only the cases of the specs of these stories
--kind <kind...>Only the cases of these kinds
--environment <id>Run every case in this environment (wins over the case, the spec, and orbtest.toml)
--place <id>Run in this place (wins over the place of the environment)
--jobs <n>Run cases on up to <n> workers (default 1)
--confirmAnchor each passed deterministic case to the current commit in its sidecar (refuses a dirty tree)
--keep-scratchKeep the case folders, the container, or the ssh run folder after the run
--resume <run-id>Continue an earlier run from its completed cases; the selection of that run stays
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour bind
flint orbtest behaviour bind [options]

Read the orbtest: <spec-id>/<case-id> markers of the test files and compare them with the sidecars in behaviour/bindings/. With no flag, report and write nothing. --scan writes the sidecars and keeps every anchor. --check writes nothing and exits 1 when a sidecar is not current, a marker names no case, or a case has two markers.

OptionDescription
--scanWrite one sidecar per spec under behaviour/bindings/; anchors stay
--checkWrite nothing; exit 1 when a sidecar is not current, a marker names no case, or a case has two markers
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour drift
flint orbtest behaviour drift [options]

Mark each anchored case stale or suspect when its words, its bound test, a component, or a proven criterion changed after the anchor. Writes nothing. --check exits 1 when a case of a blocking story is stale or unconfirmed.

OptionDescription
--checkGate: exit 1 when a case of a blocking story is stale or unconfirmed
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour heal
flint orbtest behaviour heal [options]

Give each case of a run that is not green one verdict (environment_broken, test_wrong, flaky, spec_outdated, product_bug, unknown) with a rationale that cites evidence, and write heal/<case>.json in the run folder. It never weakens an assertion, never changes the words or the product, and applies a test patch only with --apply.

OptionDescription
--run <run-id>The behaviour run to heal (default: the newest behaviour run)
--case <id...>Only these cases (default: every case of the run that is not green)
--applyApply a test_wrong patch that passes every guard rule; the case is then repaired and waits for review
--target <runtime/profile>The Orbh agent target of the healer, e.g. claude/o55xh
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour fixture
flint orbtest behaviour fixture [options] [command]

List, build, and author the fixtures of the behaviour layer: recipes or scripts that build real state

Subcommands: list, build, author.

flint orbtest behaviour fixture list
flint orbtest behaviour fixture list [options]

List the fixtures of behaviour/fixtures/: id, form (recipe or script), the fixtures it uses, the cache mode, and the number of verify checks. Writes nothing.

OptionDescription
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour fixture build
flint orbtest behaviour fixture build [options] <id>

Build one fixture and its uses chain in a scratch case folder of the place, then run its verify checks. Exit 0 when it builds and verifies, 1 when a build, materialize, or verify step fails.

ArgumentDescription
idFixture id
OptionDescription
--place <id>Build in this place (default: the place of the environment, else local)
--environment <id>Build in this environment (default: orbtest.toml [behaviour] environment, else local)
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour fixture author
flint orbtest behaviour fixture author [options]

Ask an Orbh agent to propose a fixture recipe for a state in words. The proposal, the prompt, and the reply go to .local/runs/fixture-author-<time>/ and nothing is written under behaviour/fixtures/: a person approves the recipe first. Exit 0 with a proposal, 1 when the reply holds no valid recipe, 3 when no agent answered.

OptionDescription
--brief <text>The state that the fixture must build, in words
--id <id>The id of the proposed fixture (default: fixture)
--target <runtime/profile>The Orbh agent target (default: orbtest.toml [agent] target, else claude/o5m)
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour place
flint orbtest behaviour place [options] [command]

List, show, and check the places where an environment runs: local, ssh, docker, or command

Subcommands: list, show, check.

flint orbtest behaviour place list
flint orbtest behaviour place list [options]

List the places: the built-in local place, places/<id>.yaml, and .local/places/<id>.yaml (a machine-local place wins). Writes nothing.

OptionDescription
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour place show
flint orbtest behaviour place show [options] <id>

Show one place with every key of its file. Writes nothing.

ArgumentDescription
idPlace id
OptionDescription
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr
flint orbtest behaviour place check
flint orbtest behaviour place check [options] <id>

Check that the place is reachable and has its tools: its check op, else an open, one probe command, and a close. Exit 0 when every check passes, 3 when one fails.

ArgumentDescription
idPlace id
OptionDescription
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr

flint orbtest coverage

flint orbtest coverage [options]

Show a state for each criterion of each story (proven, failing, stale, gap, not-run, waived), from the behaviour cases and the UI tasks that name it, and list the orphan cases, the test files that carry no case, and the quarantined and repaired cases. Writes nothing.

OptionDescription
--story <id>Only this story
--layer <layer>Which layers prove a criterion: ui, behaviour, all (default all)
--root <dir>Product root: the directory that holds orbtest/ (default: cwd)
--jsonPrint one JSON value on stdout; progress and human lines go to stderr

flint orbtest profile

flint orbtest profile [options] [command]

List, show, and change the profiles: under format "0.0.1" one file per profile in ui/profiles/, the driver half, which names its environment in environments/; the profiles.yaml register in the legacy flat layout

Subcommands: list, show, add, set, unset, rename, remove.

flint orbtest profile list
flint orbtest profile list [options]

List every profile: environment, platform, tier, agent target, and how many tasks and suites use it

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile show
flint orbtest profile show [options] <id>

Show one profile: the resolved profile, the tasks and suites that use it, its requirements, and the resolved agent target. Under format "0.0.1" the fields are the driver half and the environment half joined, and both files are named.

ArgumentDescription
idProfile id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile add
flint orbtest profile add [options] <id> [assignment...]

Add a profile. Under format "0.0.1" it writes the driver half to ui/profiles/<id>.yaml and, unless --environment names an environment that exists, the environment half to environments/<id>.yaml with the same id; in the legacy flat layout it writes to the profiles.yaml register. Start from the defaults of a platform (--platform), a copy of the driver half of a profile, which names the same environment (--from), or a whole profile from a file (--file). Assignments after the id change the new profile before the write.

ArgumentDescription
idId of the new profile
assignmentFields to set on the new profile, as <path>=<value>, e.g. base_url=http://127.0.0.1:4180; a field of the environment half goes to the new environment
OptionDescription
--platform <platform>Start from the defaults of a platform: web, terminal, desktop
--from <id>Start from a copy of the driver half of an existing profile; the new profile names the same environment
--file <path>Read the whole profile from a JSON or YAML file; its environment fields become the new environment
--environment <id>Name an environment that exists instead of writing a new one (format "0.0.1" only)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile set
flint orbtest profile set [options] <id> <assignment...>

Set one or more fields of a profile. The value is YAML. agent.target is checked against the Orbh profiles; a profile with no agent block gets agent.kind orbh. Under format "0.0.1" this is the driver half: a field of the environment half is refused with the environment set command that owns it, and environment=<id> names another environment.

ArgumentDescription
idProfile id
assignmentOne or more <path>=<value>, e.g. agent.target=claude/o5m viewport.width=1440; with --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile unset
flint orbtest profile unset [options] <id> <path>

Remove one field from a profile. Under format "0.0.1" this is the driver half; it removes a field of the environment half only when the UI profile file holds it by mistake, and names environment unset otherwise.

ArgumentDescription
idProfile id
pathDotted field path, e.g. agent.target
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile rename
flint orbtest profile rename [options] <old> <new>

Rename a profile. Rewrites task.profile, task.steps[].on, suite.profiles[], and profile: in ui/briefs/*.yaml, and renames its ui/baselines/<suite>/<entry>/<old>.png and .json. The environment keeps its id; rename it with environment rename.

ArgumentDescription
oldCurrent profile id
newNew profile id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest profile remove
flint orbtest profile remove [options] <id>

Remove a profile: its driver half under ui/profiles/ in format "0.0.1", its entry in the profiles.yaml register in the legacy flat layout. Refused while a task or a suite uses it; each user is named. The environment stays; remove it with environment remove when no other profile names it.

ArgumentDescription
idProfile id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest environment

flint orbtest environment [options] [command]

List, show, and change the environments: the environment half of a profile, one file per environment in environments/ under format "0.0.1"

Subcommands: list, show, add, set, unset, rename, remove.

flint orbtest environment list
flint orbtest environment list [options]

List every environment: operating system, app version, base URL, services, seeds, and the profiles that name it

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment show
flint orbtest environment show [options] <id>

Show one environment: its fields, the profiles that name it, and the requirements that name it by id

ArgumentDescription
idEnvironment id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment add
flint orbtest environment add [options] <id> [assignment...]

Add an environment to environments/<id>.yaml. Start from the environment half of the defaults of a platform (--platform), a copy of an environment (--from), a whole environment from a file (--file), or, with none of the three, the id alone: a behaviour environment needs no other field, e.g. environment add scratch place=local. Assignments after the id change it before the write. A profile names it with profile set <profile> environment=<id>, or profile add <profile> --environment <id>; a behaviour spec or case names it with environment: <id>.

ArgumentDescription
idId of the new environment
assignmentFields to set on the new environment, as <path>=<value>, e.g. base_url=http://127.0.0.1:4180
OptionDescription
--platform <platform>Start from the environment half of the defaults of a platform: web, terminal, desktop
--from <id>Start from a copy of an existing environment
--file <path>Read the whole environment from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment set
flint orbtest environment set [options] <id> <assignment...>

Set one or more fields of an environment. The value is YAML. A field of the UI profile is refused with the profile set command that owns it. Every profile that names the environment sees the change.

ArgumentDescription
idEnvironment id
assignmentOne or more <path>=<value>, e.g. base_url=http://127.0.0.1:4180 setup.verify="curl -sf http://127.0.0.1:4180"; with --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment unset
flint orbtest environment unset [options] <id> <path>

Remove one field from an environment. A field of the UI profile is removed only when the environment file holds it by mistake; otherwise the profile unset command that owns it is named.

ArgumentDescription
idEnvironment id
pathDotted field path, e.g. version_check
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment rename
flint orbtest environment rename [options] <old> <new>

Rename an environment. Rewrites the environment field of every UI profile that names it. A file environments/<old>.yaml that holds only this environment becomes environments/<new>.yaml. A requirement that names the old id in its profiles field is not rewritten: when no profile has the old id, the rename is refused and names the requirement; change it first with requirement set.

ArgumentDescription
oldCurrent environment id
newNew environment id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest environment remove
flint orbtest environment remove [options] <id>

Remove an environment: its file under environments/. Refused while a profile names it; each profile is named.

ArgumentDescription
idEnvironment id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest step

flint orbtest step [options] [command]

List, show, and change the library steps in ui/steps/*.yaml

Subcommands: list, show, set, unset, rename, remove, mark.

flint orbtest step list
flint orbtest step list [options]

List library steps: mode, atom, route, file, marks, and uses

OptionDescription
--task <id>Only the steps this task invokes
--file <name>Only the steps in this file, e.g. mesh or ui/steps/mesh.yaml
--staleOnly the steps marked stale
--unusedOnly the steps that no task and no suite entry uses
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step show
flint orbtest step show [options] <id>

Show one library step: its fields and the tasks and suite entries that use it

ArgumentDescription
idStep id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step set
flint orbtest step set [options] <id> <assignment...>

Set one or more fields of a step. The value is parsed as YAML. Refuses id and fingerprint

ArgumentDescription
idStep id
assignmentOne or more <path>=<value>, e.g. description="Open the mesh settings". With --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step unset
flint orbtest step unset [options] <id> <path>

Remove one field from a step. Refuses id and fingerprint

ArgumentDescription
idStep id
pathDotted field path, e.g. ready. A list index removes the item
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step rename
flint orbtest step rename [options] <old> <new>

Rename a step, and rewrite every task invocation and every suite setup entry that uses it

ArgumentDescription
oldCurrent step id
newNew step id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step remove
flint orbtest step remove [options] <id>

Delete a step. Refuses while a task or a suite uses it, and names each use

ArgumentDescription
idStep id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest step mark
flint orbtest step mark [options] <id>

Set the stale or suspect flag of a step by hand, or clear it with --clear

ArgumentDescription
idStep id
OptionDescription
--staleMark the step stale
--suspectMark the step suspect
--clearClear the named flags instead; alone, clear both
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest task

flint orbtest task [options] [command]

List, show, and change the tasks in ui/tasks/*.yaml

Subcommands: list, show, set, unset, rename, remove, mark, step, check, negative.

flint orbtest task list
flint orbtest task list [options]

List tasks: profile, story, step count, expectation, and state (stale, agentic, confirmed, or unconfirmed)

OptionDescription
--story <id>Only the tasks bound to this story
--profile <id>Only the tasks whose primary profile is this one
--staleOnly the tasks marked stale
--unconfirmedOnly the tasks with no confirmed block, except tasks with an agentic step, which run --confirm never anchors
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task show
flint orbtest task show [options] <id>

Show one task: its fields and each step invocation with the step name

ArgumentDescription
idTask id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task set
flint orbtest task set [options] <id> <assignment...>

Set one or more fields of a task. The value is parsed as YAML. Refuses id and confirmed

ArgumentDescription
idTask id
assignmentOne or more <path>=<value>, e.g. inputs.email=reader@example.test. With --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task unset
flint orbtest task unset [options] <id> <path>

Remove one field from a task. Refuses id and confirmed

ArgumentDescription
idTask id
pathDotted field path, e.g. story. A list index removes the item
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task rename
flint orbtest task rename [options] <old> <new>

Rename a task. When the task is alone in a file named after its id, the file is renamed too

ArgumentDescription
oldCurrent task id
newNew task id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task remove
flint orbtest task remove [options] <id>

Delete a task: the retire of a task. --with-orphan-steps also deletes the steps only this task used

ArgumentDescription
idTask id
OptionDescription
--with-orphan-stepsAlso delete each step of the task that no other task and no suite uses
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task mark
flint orbtest task mark [options] <id>

Set the stale flag of a task by hand, or clear it with --clear

ArgumentDescription
idTask id
OptionDescription
--staleMark the task stale; the harness skips a stale task
--clearClear the stale flag instead
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task step
flint orbtest task step [options] [command]

Edit the step invocations of a task

Subcommands: add, set, remove.

flint orbtest task step add
flint orbtest task step add [options] <id> <step>

Add a step invocation to a task, at the end or at --at <n>

ArgumentDescription
idTask id
stepId of the library step to invoke
OptionDescription
--at <n>Insert at this 0-based position (default: append)
--on <profile>Run this invocation on a companion profile
--with <key=value...>Values for the step params; each value is parsed as YAML
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task step set
flint orbtest task step set [options] <id> <n> <assignment...>

Set fields of one step invocation of a task. The value is parsed as YAML

ArgumentDescription
idTask id
n0-based position of the invocation
assignmentOne or more <path>=<value> inside the invocation, e.g. with.email=a@b.test or on=web-mobile. With --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task step remove
flint orbtest task step remove [options] <id> <n>

Remove one step invocation from a task. The library step stays

ArgumentDescription
idTask id
n0-based position of the invocation
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task check
flint orbtest task check [options] [command]

Edit the deterministic checks of the final verify of a task

Subcommands: add, list, remove.

flint orbtest task check add
flint orbtest task check add [options] <id>

Append one deterministic check to the final verify of a task. A verify that is one mapping becomes a list that keeps the entry. The check goes into the first deterministic entry, or into a new deterministic entry when there is none

ArgumentDescription
idTask id
OptionDescription
--kind <type>Check type: dom, route, sql, or command (any registered type)
--arg <path=value...>One field of the check, e.g. pattern=/mesh/:id or locator.strategy=role. The value is parsed as YAML
--file <path>Read the fields of the check from a JSON or YAML mapping; --arg values override it
--verify <n>Append to this 0-based deterministic verify entry (default: the first deterministic entry)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task check list
flint orbtest task check list [options] <id>

List the deterministic checks of the final verify of a task, with the 0-based index that task check remove takes

ArgumentDescription
idTask id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task check remove
flint orbtest task check remove [options] <id> <n>

Remove one deterministic check from the final verify of a task. Refuses to remove the last check of a verify entry

ArgumentDescription
idTask id
n0-based check index, as task check list prints it
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest task negative
flint orbtest task negative [options] [command]

Create negative controls: tasks with expect: fail

Subcommands: add.

flint orbtest task negative add
flint orbtest task negative add [options] <source-id>

Create a negative control: a copy of a task with the profile, story, seed, pacing, steps, and verify of the source, one wrong input, and expect: fail. The file is ui/tasks/<id>.yaml

ArgumentDescription
source-idId of the task to copy
OptionDescription
--input <key=value>The one input to replace and its wrong value. The value is parsed as YAML
--id <id>Id of the new task (default: <source-id>.wrong-<key>)
--name <text>Name of the new task (default: "<source name> with the wrong <key>")
--description <text>Description of the new task (default: a negative-control sentence)
--verify <n>Keep only this 0-based deterministic verify entry, as one mapping (default: copy verify as it is)
--without-storyDo not copy the story of the source task
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest story

flint orbtest story [options] [command]

List, show, and change the stories in stories/*.yaml

Subcommands: list, show, add, set, unset, rename, remove, criterion.

flint orbtest story list
flint orbtest story list [options]

List stories: tier, acceptance criteria, and bound tasks

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story show
flint orbtest story show [options] <id>

Show one story: its fields, its acceptance criteria by index, and the tasks bound to it

ArgumentDescription
idStory id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story add
flint orbtest story add [options] <id>

Create a story in stories/<prefix>.yaml, where the prefix is the id up to the first dot. The file is created or appended to.

OptionDescription
--name <text>Short human title of the feature
--story <text>The user story: as a <role>, I want <goal>, so that <benefit>
--tier <tier>Gate tier: blocking or informational
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story set
flint orbtest story set [options] <id> <assignments...>

Change fields of a story: <path>=<value>, the value parsed as YAML, e.g. stale=true or tier=informational. With --file, give one bare <path>.

OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story unset
flint orbtest story unset [options] <id> <path>

Delete one field of a story, e.g. tier or acceptance.1

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story rename
flint orbtest story rename [options] <old> <new>

Change the id of a story and rewrite task.story in every task and story: in every brief that names it. A file stories/<old>.yaml that holds only this story becomes stories/<new>.yaml; any other file keeps its name. Refused when the target file exists.

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story remove
flint orbtest story remove [options] <id>

Delete a story. Refused while a task names it in task.story; --unbind first removes story from those tasks.

OptionDescription
--unbindRemove the story field from every task bound to the story, then delete the story
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story criterion
flint orbtest story criterion [options] [command]

Acceptance criteria of a story, addressed by their 0-based index

Subcommands: add, set, remove.

flint orbtest story criterion add
flint orbtest story criterion add [options] <id> <text>

Append an acceptance criterion to a story

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story criterion set
flint orbtest story criterion set [options] <id> <n> <text>

Replace the text of acceptance criterion <n> (0-based)

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest story criterion remove
flint orbtest story criterion remove [options] <id> <n>

Delete acceptance criterion <n> (0-based); later criteria move up by one. Removing the last one deletes the acceptance field.

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest suite

flint orbtest suite [options] [command]

List, show, and change the snapshot suites in ui/suites/*.yaml

Subcommands: list, show, add, set, unset, rename, remove, entry, mask.

flint orbtest suite list
flint orbtest suite list [options]

List snapshot suites: entries, profiles, and approved baselines

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite show
flint orbtest suite show [options] <id>

Show one snapshot suite: its fields, entries, profiles, and the baseline state of each cell (approved or missing)

ArgumentDescription
idSuite id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite add
flint orbtest suite add [options] <id>

Create ui/suites/<id>.yaml with one first entry. A suite needs at least one entry and a threshold.

ArgumentDescription
idSuite id; the file is ui/suites/<id>.yaml
OptionDescription
--name <text>Short human title (required)
--profile <id...>Profile ids of the matrix (required, one or more)
--seed <id>Seed applied once per profile before the first entry
--entry <id>Id of the first entry (required)
--route <route>Route of the first entry (required)
--setup-from-task <task>Copy the task's steps into the setup of the first entry, and the task inputs they use into the suite inputs
--full-pageCapture the full scrollable page for the first entry
--pixel-ratio <n>Suite threshold pixel_ratio, 0 to 1 (default 0.002)
--per-pixel <n>Suite threshold per_pixel, 0 to 255 (default 12)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite set
flint orbtest suite set [options] <id> <assignment...>

Set one or more fields of a suite. The value is parsed as YAML. Use suite entry set for the fields of one entry.

ArgumentDescription
idSuite id
assignmentOne or more <path>=<value>, e.g. threshold.pixel_ratio=0.004; with --file, one bare <path>
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite unset
flint orbtest suite unset [options] <id> <path>

Remove one field of a suite. A list index removes the item.

ArgumentDescription
idSuite id
pathDotted field path, e.g. seed or inputs.title
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite rename
flint orbtest suite rename [options] <old> <new>

Change the id of a suite and move ui/baselines/<old>/ to ui/baselines/<new>/. A file ui/suites/<old>.yaml that holds only this suite becomes ui/suites/<new>.yaml.

ArgumentDescription
oldCurrent suite id
newNew suite id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite remove
flint orbtest suite remove [options] <id>

Delete a suite and, by default, its baselines under ui/baselines/<id>/

ArgumentDescription
idSuite id
OptionDescription
--keep-baselinesKeep ui/baselines/<id>/; baseline prune deletes them later
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite entry
flint orbtest suite entry [options] [command]

Add, change, and remove the entries of a suite

Subcommands: add, set, unset, remove.

flint orbtest suite entry add
flint orbtest suite entry add [options] <id> <entry>

Append an entry to a suite

ArgumentDescription
idSuite id
entryNew entry id, unique within the suite
OptionDescription
--route <route>Route to capture (required)
--setup-from-task <task>Copy the task's steps into setup, and the task inputs they use into the suite inputs
--full-pageCapture the full scrollable page instead of the viewport
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite entry set
flint orbtest suite entry set [options] <id> <entry> <assignment...>

Set one or more fields of one suite entry. The value is parsed as YAML.

ArgumentDescription
idSuite id
entryEntry id
assignmentOne or more <path>=<value> inside the entry, e.g. full_page=true or threshold={pixel_ratio: 0.01, per_pixel: 12}
OptionDescription
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite entry unset
flint orbtest suite entry unset [options] <id> <entry> <path>

Remove one field of one suite entry. A list index removes the item.

ArgumentDescription
idSuite id
entryEntry id
pathDotted field path inside the entry, e.g. threshold or ready
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite entry remove
flint orbtest suite entry remove [options] <id> <entry>

Remove one entry of a suite. Its baselines stay; baseline prune deletes them.

ArgumentDescription
idSuite id
entryEntry id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite mask
flint orbtest suite mask [options] [command]

Add and remove the mask locators of a suite entry

Subcommands: add, remove.

flint orbtest suite mask add
flint orbtest suite mask add [options] <id> <entry> <locator>

Append a mask locator to a suite entry. The element box is filled on both images before comparison.

ArgumentDescription
idSuite id
entryEntry id
locatorLocator as YAML, e.g. "{strategy: testid, value: last-updated}"
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest suite mask remove
flint orbtest suite mask remove [options] <id> <entry> <n>

Remove one mask locator of a suite entry

ArgumentDescription
idSuite id
entryEntry id
n0-based index of the mask locator in the entry, as in the path mask.<n>
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest requirement

flint orbtest requirement [options] [command]

List, show, and change the machine requirements: one file per requirement in requirements/ under format "0.0.1", requirements.yaml and the files named by profile.requirements in the legacy flat layout

Subcommands: list, show, add, set, unset, remove.

flint orbtest requirement list
flint orbtest requirement list [options]

List every machine requirement: its file, its platforms, and the profiles it applies to

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest requirement show
flint orbtest requirement show [options] <id>

Show one machine requirement: its fields, the file that holds it, and the profiles it applies to

ArgumentDescription
idRequirement id
OptionDescription
--file <path>The file that holds the id, relative to the definitions root. Only the legacy flat layout needs it, where two requirements files may use one id
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest requirement add
flint orbtest requirement add [options] <id> [assignment...]

Add a requirement: to requirements/<id>.yaml under format "0.0.1", to requirements.yaml in the legacy flat layout, or to the --in file in either. name, check, and guidance are required. The file is created when it is absent.

ArgumentDescription
idId of the new requirement, unique in its file
assignmentFields as <path>=<value>, e.g. name="Node.js 22" check="node --version" guidance="Install Node.js 22."
OptionDescription
--in <file>Requirements file, relative to the definitions root. Format "0.0.1": a file in requirements/ (default: requirements/<id>.yaml). Legacy flat layout: a requirements file (default: requirements.yaml, or the one loaded file that holds the id)
--file <path>Read the whole requirement from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest requirement set
flint orbtest requirement set [options] <id> <assignment...>

Set one or more fields of a requirement. The value is YAML.

ArgumentDescription
idRequirement id
assignmentOne or more <path>=<value>, e.g. version.expect="^v22"; with --file, one bare <path>
OptionDescription
--in <file>Requirements file, relative to the definitions root. Format "0.0.1": a file in requirements/ (default: requirements/<id>.yaml). Legacy flat layout: a requirements file (default: requirements.yaml, or the one loaded file that holds the id)
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest requirement unset
flint orbtest requirement unset [options] <id> <path>

Remove one field from a requirement

ArgumentDescription
idRequirement id
pathDotted field path, e.g. version or platforms
OptionDescription
--in <file>Requirements file, relative to the definitions root. Format "0.0.1": a file in requirements/ (default: requirements/<id>.yaml). Legacy flat layout: a requirements file (default: requirements.yaml, or the one loaded file that holds the id)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest requirement remove
flint orbtest requirement remove [options] <id>

Remove a requirement from its file. A file must keep at least one requirement.

ArgumentDescription
idRequirement id
OptionDescription
--in <file>Requirements file, relative to the definitions root. Format "0.0.1": a file in requirements/ (default: requirements/<id>.yaml). Legacy flat layout: a requirements file (default: requirements.yaml, or the one loaded file that holds the id)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest settings

flint orbtest settings [options] [command]

Show and change the per-repository settings in orbtest.toml

Subcommands: show, set, unset.

flint orbtest settings show
flint orbtest settings show [options]

Show orbtest.toml with every key, and what applies to each key that is not set

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest settings set
flint orbtest settings set [options] <assignment...>

Set keys in orbtest.toml. Creates the file from the commented scaffold when it is absent. Keeps every comment and every other line.

ArgumentDescription
assignmentOne or more <table.key>=<value>: agent.target=claude/o5m, runs.keep=10. orbtest.format is refused: init and upgrade own it
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest settings unset
flint orbtest settings unset [options] <key>

Remove a key from orbtest.toml. The default applies again. Keeps every comment and every other line.

ArgumentDescription
keyOne <table.key>, e.g. runs.keep. orbtest.format is refused: init and upgrade own it
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest services

flint orbtest services [options] [command]

Change the machine-local services file that setup.local_start names

Subcommands: set, remove.

flint orbtest services set
flint orbtest services set [options] <name> <assignment...>

Add a service to the machine-local services file, or change one. A new service needs command and ready. Refused while git would commit the file (gitignore *.local.yaml).

ArgumentDescription
nameService name; a new name adds a service
assignmentOne or more <path>=<value>: command, ready, cwd, timeout_ms, env.<NAME>; with --file, one bare <path>
OptionDescription
--profile <id>The profile whose setup.local_start names the file (default: the one file all profiles name)
--file <path>Read the value of the one <path> from a JSON or YAML file
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest services remove
flint orbtest services remove [options] <name>

Remove a service from the machine-local services file

ArgumentDescription
nameService name
OptionDescription
--profile <id>The profile whose setup.local_start names the file (default: the one file all profiles name)
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest secret

flint orbtest secret [options] [command]

Manage the names in .local/secrets; a human enters the values in a local browser page

Subcommands: list, add, enter.

flint orbtest secret list
flint orbtest secret list [options]

List each env:// name the definitions reference, and each name in .local/secrets, with its state: set, empty, or missing. A folder that has not moved yet is read from .secrets-orbtest too, as the harness reads it. Never prints a value.

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest secret add
flint orbtest secret add [options] <name...>

Add names to .local/secrets with an empty value. A name already in .local/secrets or in .secrets-orbtest is left as it is. The agent adds names only; the human enters the values with secret enter.

ArgumentDescription
nameOne or more environment variable names, e.g. ONYX_EMAIL
OptionDescription
--dry-runPrint the names the command would add, and write nothing
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest secret enter
flint orbtest secret enter [options] [name...]

Ask the human for secret values in a local browser page, and write them to .local/secrets. Serves one form on 127.0.0.1 with a one-time token, accepts one submit, then stops. Prints only the names it set. Refused while .local/secrets is not gitignored.

ArgumentDescription
nameNames to ask for (default: every referenced or listed name with no value)
OptionDescription
--timeout <ms>Stop and write nothing after this many milliseconds (default: 600000)
--no-openDo not open a browser; print the URL only
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest baseline

flint orbtest baseline [options] [command]

List and delete approved baselines under ui/baselines/

Subcommands: list, remove, prune.

flint orbtest baseline list
flint orbtest baseline list [options]

List each baseline with approved_by, approved_at, and run. A baseline whose suite, entry, or profile no longer exists is marked orphan.

OptionDescription
--suite <id>Only the baselines of this suite
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest baseline remove
flint orbtest baseline remove [options] <suite> [entry] [profile]

Delete baselines: every baseline of a suite, of one entry, or of one cell. The next snapshot reports the cells as new.

ArgumentDescription
suiteSuite id of the baselines folder
entryOnly this entry
profileOnly this profile of the entry
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest baseline prune
flint orbtest baseline prune [options]

Delete the baselines whose suite, entry, or profile no longer exists in the definitions

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest runs

flint orbtest runs [options] [command]

Delete old run folders under .local/runs/

Subcommands: prune.

flint orbtest runs prune
flint orbtest runs prune [options]

Delete old run folders of each kind: task runs (<run-id>), author-, snapshot-, doctor-, and behaviour-. The newest --keep of each kind stay. A snapshot run that a baseline names in its run field always stays, and a behaviour run that a sidecar anchor names always stays; neither counts against --keep.

OptionDescription
--kind <kind>Only this kind: run, author, snapshot, doctor, behaviour (default: every kind)
--keep <n>Folders to keep per kind, newest first, 0 or more (default: [runs] keep of orbtest.toml)
--runs <dir>Run record directory (default: <orbtest>/.local/runs); it must be inside the definitions root
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest brief

flint orbtest brief [options] [command]

Write and read the briefs under ui/briefs/, the input of author --brief

Subcommands: list, show, add, set, unset, rename, remove.

flint orbtest brief list
flint orbtest brief list [options]

List every brief with its profile, story, component map, and problems

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief show
flint orbtest brief show [options] <id>

Print a brief, its resolved id and name, its component map, and its problems

ArgumentDescription
idBrief id: the file name under ui/briefs/ without .yaml
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief add
flint orbtest brief add [options] <id>

Write a new brief to ui/briefs/<id>.yaml

ArgumentDescription
idBrief id; the task id author proposes. Written to ui/briefs/<id>.yaml
OptionDescription
--description <text>What the user does and what must be true at the end. Required. May hold {{inputs.name}} placeholders
--name <text>Task name (default: the first sentence of the description)
--profile <id>Profile to run on (default: the only registered profile)
--story <id>Story of the task author proposes
--seed <id>Seed applied before the run (default: the default seed)
--input <key=value...>Task inputs, as author --input. A value may be env://NAME
--verify-file <path>JSON or YAML file holding the final verification, in a task's verify shape
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief set
flint orbtest brief set [options] <id> <assignment...>

Set one or more fields of a brief. The value is parsed as YAML

ArgumentDescription
idBrief id
assignmentOne or more <path>=<value>, e.g. description="..." or inputs.title=Sapiens; with --file, one bare <path>
OptionDescription
--file <path>JSON or YAML file holding the value of the one <path>, e.g. verify
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief unset
flint orbtest brief unset [options] <id> <path...>

Delete one or more fields of a brief

ArgumentDescription
idBrief id
pathOne or more field paths to delete, e.g. seed or inputs.title
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief rename
flint orbtest brief rename [options] <old> <new>

Change the id of a brief. ui/briefs/<old>.yaml and ui/briefs/<old>.components.json move to the new id together, and an id field in the brief follows

ArgumentDescription
oldCurrent brief id
newNew brief id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest brief remove
flint orbtest brief remove [options] <id>

Delete ui/briefs/<id>.yaml and its component map ui/briefs/<id>.components.json

ArgumentDescription
idBrief id
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest components

flint orbtest components [options] [command]

Write the component map of a brief, ui/briefs/<id>.components.json, the input of author --components

Subcommands: set, remove.

flint orbtest components set
flint orbtest components set [options] <id> <locator> <path>

Map one locator description to the file that renders it. Refuses a path that does not exist

ArgumentDescription
idBrief id
locatorLocator description, e.g. 'label "Email"', as in external:web:<locator> in bundle.json; * is the fallback
pathFile that renders the element, relative to the product root. It must exist in the repository
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest components remove
flint orbtest components remove [options] <id> <locator>

Delete one entry of the component map of a brief. A map left empty is deleted

ArgumentDescription
idBrief id
locatorLocator description of the entry to delete
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint orbtest fixture

flint orbtest fixture [options] [command]

Manage the files under ui/fixtures/ that upload steps and task inputs name as ui/fixtures/<name>

Subcommands: add, list, remove.

flint orbtest fixture add
flint orbtest fixture add [options] <source>

Copy a file into ui/fixtures/. Name it in an upload step or a task input as ui/fixtures/<name>

ArgumentDescription
sourceFile to copy into ui/fixtures/
OptionDescription
--as <name>Name under ui/fixtures/ (default: the file name of <source>); may hold subfolders, e.g. imports/orbtest-import.md
--forceReplace a fixture of the same name
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest fixture list
flint orbtest fixture list [options]

List the files under ui/fixtures/ with their size and the definitions that name them

OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--jsonPrint the result as JSON on stdout; human lines go to stderr
flint orbtest fixture remove
flint orbtest fixture remove [options] <name>

Delete a file under ui/fixtures/. Refuses while a task input, a step, a suite entry, or a brief names it

ArgumentDescription
nameFixture name, e.g. attachment.txt or ui/fixtures/attachment.txt
OptionDescription
--root <dir>Directory holding orbtest/ (default: cwd)
--dry-runPrint a unified diff of each file the change would write, and write nothing
--jsonPrint the result as JSON on stdout; human lines go to stderr

flint server

flint server [options] [command]

Manage the local Flint server

Subcommands: start, daemon, dev, status, stop, list.

flint server start

flint server start [options]

Start the Flint server

OptionDescription
-p, --port <port>Port to bind in --ephemeral mode (default: the first free port from 14040)
--path <dir>Path to flint (default: auto-detect)
--steel-url <url>Paired Steel host URL for cascading shutdown
--ephemeralRun unregistered (no registry/discovery) — for a dev instance parallel to a live server
--dev-plate <name=url>In-memory dev-plate override (repeatable), e.g. tasks=http://127.0.0.1:13501 (default: [])
--dev-origin <origin>Approve the origin of a web client of this --ephemeral server, such as the Steel of steel dev --ephemeral (repeatable; http://127.0.0.1:<port> or http://localhost:<port>) (default: [])

flint server daemon

flint server daemon [options]

Run a Blacksmith-spawned Flint server daemon

flint server dev

flint server dev [options]

Start the server in dev mode with auto-reload on source changes

OptionDescription
-p, --port <port>Port to bind
--path <dir>Path to flint (default: auto-detect)

flint server status

flint server status [options]

Check server status

OptionDescription
--server <url>Server URL
--wideRender full-width table output without narrow stacking

flint server stop

flint server stop [options]

Stop the Flint server

OptionDescription
--server <url>Server URL

flint server list

flint server list [options]

List all running Flint servers from the shared registry

OptionDescription
--wideRender full-width key/value output

flint steel

flint steel [options] [command]

Serve the Steel host, and manage the Steel UI state (.steel/ directory)

Subcommands: serve, preferences, state, boards.

flint steel serve

flint steel serve [options]

Serve the Steel host from the Steel build of this CLI. --machine: one host for every Flint of this computer (http://<flint>.localhost:<port>/), the mode that Blacksmith runs

OptionDescription
--machineServe every Flint of this computer from one port (default 13035)
--port <port>The port of the Steel host
--host <host>The host to bind to (default 127.0.0.1)
--server <url>Without --machine: the URL of the Flint server (default: found or started for the Flint of --path)
--path <dir>Without --machine: the path of the Flint (default: the Flint of the current folder)
--no-openDo not open the browser

flint steel preferences

flint steel preferences [options]

Show Steel preferences

OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--resetClear all Steel preferences

flint steel state

flint steel state [options] <plate-name>

Show plate state

ArgumentDescription
plate-nameName of the plate
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)
--resetClear all state for this plate

flint steel boards

flint steel boards [options] <plate-name>

List board/view configs for a plate

ArgumentDescription
plate-nameName of the plate
OptionDescription
-p, --path <dir>Path to flint (default: auto-detect)

flint mcp

flint mcp [options] [command]

Expose the capabilities of this Flint as an MCP server

Subcommands: serve.

flint mcp serve

flint mcp serve [options]

Start the Flint MCP stdio server

OptionDescription
-p, --path <dir>Path to Flint workspace (default: auto-detect)
--server <url>Use a running Flint server URL instead of direct filesystem access

On this page

Contents
flint
flint create
flint list
flint browse
flint status
flint open
flint open-url
flint cd
flint rename
flint convert
flint org
flint org set
flint org show
flint obshn
flint register
flint unregister
flint delete
flint move
flint sync
flint plan
flint registry
flint registry rebuild
flint registry check
flint update
flint source
flint source repo
flint source repo add
flint source repo remove
flint source repo update
flint source repo list
flint workspace
flint workspace create
flint workspace clone
flint workspace register
flint workspace remove
flint workspace update
flint workspace list
flint reference
flint reference codebase
flint reference flint
flint reference remove
flint reference list
flint fulfill
flint resolve
flint worktree
flint worktree list
flint worktree add
flint worktree remove
flint send
flint shard
flint shard install
flint shard uninstall
flint shard reinstall
flint shard list
flint shard browse
flint shard update
flint shard broadcast
flint shard status
flint shard migrate
flint shard migrate show
flint shard migrate list
flint shard migrate run
flint shard migrate finish
flint shard migrate rerun
flint shard create
flint shard build
flint shard type
flint shard type add
flint shard dev
flint shard clone
flint shard fork
flint shard rename
flint shard id
flint shard setup
flint shard start
flint shard start-dev
flint shard hstart
flint shard hstart-dev
flint shard push
flint shard pull
flint shard publish
flint shard unpublish
flint shard published
flint shard release
flint shard versions
flint shard scripts
flint module
flint module list
flint module status
flint module install
flint module uninstall
flint module build
flint module update
flint module settings
flint module start
flint module restart
flint module stop
flint module control
flint module release
flint config
flint config open
flint config get
flint config set
flint config name
flint config machine-name
flint config org
flint config org show
flint config org set
flint config org unset
flint config org map
flint obsidian
flint obsidian status
flint obsidian update
flint obsidian repair
flint obsidian reload
flint obsidian backups
flint obsidian backups list
flint obsidian backups show
flint obsidian backups restore
flint obsidian backups prune
flint obsidian profiles
flint obsidian profiles list
flint obsidian profiles activate
flint obsidian profiles deactivate
flint obsidian applied
flint obsidian applied set
flint obsidian applied unset
flint obsidian applied apply
flint obsidian vaults
flint obsidian vaults repair
flint migrate
flint migrate list
flint migrate run
flint migrate shared
flint migrate local
flint migrate rollback
flint migrate finish
flint migrate rerun
flint migrate machine
flint orbh
flint orbh launch
flint orbh ping
flint orbh step
flint orbh step start
flint orbh step list
flint orbh step show
flint orbh i
flint orbh tui
flint orbh v
flint orbh resume
flint orbh continue
flint orbh request
flint orbh wait
flint orbh attach
flint orbh detach
flint orbh session
flint orbh update
flint orbh update list
flint orbh update flush
flint orbh rooms
flint orbh improve
flint orbh approval
flint orbh approval request
flint orbh approval list
flint orbh approval show
flint orbh approval respond
flint orbh approval say
flint orbh approval finish
flint orbh respond
flint orbh result
flint orbh requests
flint orbh message
flint orbh message send
flint orbh message broadcast
flint orbh message request
flint orbh message respond
flint orbh message list
flint orbh humanchannel
flint orbh humanchannel setup
flint orbh humanchannel status
flint orbh humanchannel refresh
flint orbh humanchannel test
flint orbh humanchannel webhook
flint orbh humanchannel webhook ensure
flint orbh humanchannel webhook set
flint orbh humanchannel webhook clear
flint orbh artifact
flint orbh end
flint orbh kill
flint orbh close
flint orbh park
flint orbh discard
flint orbh focus
flint orbh list
flint orbh active
flint orbh timeline
flint orbh inspect
flint orbh peek
flint orbh stats
flint orbh watch
flint orbh context
flint orbh scope
flint orbh space
flint orbh space list
flint orbh space show
flint orbh space init
flint orbh station
flint orbh station create
flint orbh station list
flint orbh station show
flint orbh station pause
flint orbh station resume
flint orbh station send
flint orbh station request
flint orbh station claim
flint orbh station respond-item
flint orbh station bind
flint orbh cron
flint orbh cron create
flint orbh cron list
flint orbh cron show
flint orbh cron pause
flint orbh cron resume
flint orbh cron run-now
flint orbh cron delete
flint orbh move-spool
flint orbh save
flint orbh restore
flint orbh import
flint orbh runtimes
flint orbh profiles
flint orbh profiles switch
flint orbh profiles default
flint orbh profiles default set
flint orbh profiles default unset
flint orbh profiles update
flint orbh profiles push
flint orbh auth
flint orbh auth migrate
flint orbh auth fallback
flint orbh auth fallback show
flint orbh auth fallback set
flint orbh auth fallback unset
flint orbh auth fallback check
flint orbh auth fallback settings
flint orbh auth add
flint orbh auth account
flint orbh auth list
flint orbh auth default
flint orbh auth rename
flint orbh auth remove
flint orbh auth deactivate
flint orbh auth reactivate
flint orbh auth manual-only
flint orbh auth usage
flint orbh auth refresh
flint orbh auth ccusage
flint orbh claude
flint orbh claude doctor
flint orbh claude config
flint orbh claude config diff
flint orbh claude config apply
flint orbh claude config update
flint orbh claude list
flint orbh heal
flint orbh verify
flint orbh verify-sessions
flint orbh rebuild-session-snapshots
flint orbh rebuild
flint orbh orchestrator
flint orbh orchestrator status
flint orbh orchestrator managers
flint orbh orchestrator processes
flint orbh orchestrator launcher
flint orbh orchestrator launcher show
flint orbh orchestrator launcher adopt
flint orbh orchestrator launcher clear
flint orbh orchestrator ensure
flint orbh orchestrator stop
flint orbh orchestrator restart
flint orbh orchestrator reap
flint orbh server
flint orbh server start
flint orbh server stop
flint orbh server status
flint orbh archive
flint orbh archive run
flint orbh archive restore
flint orbh archive list
flint orbh reconcile
flint orbh interrupt
flint orbh page
flint orbh page run
flint orbh page arm
flint orbh page status
flint orbh page recover
flint orbh job
flint orbh job run
flint orbh job complete
flint orbh job list
flint orbh job show
flint orbh job result
flint orbh job wait
flint orbh job cancel
flint orbh job clear
flint orbh usage
flint orbh room
flint orbh room create
flint orbh room list
flint orbh room read
flint orbh room join
flint orbh room leave
flint orbh room post
flint orbh room context
flint orbh room context show
flint orbh room context append
flint orbh room context edit
flint orbh fleet
flint orbh fleet declare
flint orbh fleet show
flint orbh fleet list
flint orbh fleet updates
flint orbh fleet join
flint orbh fleet leave
flint orbh fleet set
flint orbh fleet close
flint orbh actor
flint orbh actor show
flint orbh stream
flint orbh stream list
flint orbh stream inspect
flint orbh stream bind
flint orbh stream configure
flint orbh stream policy
flint orbh stream owner
flint orbh stream reconcile
flint orbh stream recover
flint orbh agent
flint orbh agent create
flint orbh agent list
flint orbh agent show
flint orbh agent page
flint orbh agent wake
flint orbh agent switch
flint orbh agent pause
flint orbh agent resume
flint orbh agent retire
flint orbh agent profile
flint orbh agent migrate
flint orbh agent discord
flint orbh agent discord setup
flint orbh agent discord show
flint orbh agent discord status
flint orbh agent discord start
flint orbh agent discord stop
flint orbh agent discord routing
flint orbh worker
flint orbh worker spawn
flint orbh worker list
flint orbh worker show
flint orbh worker collect
flint orbh worker say
flint orbh worker kill
flint orbh procedure
flint orbh procedure start
flint orbh procedure step
flint orbh procedure skip
flint orbh procedure show
flint orbh procedure list
flint orbh procedure finish
flint orbh procedure abandon
flint orbh workflow
flint orbh workflow dynamic
flint orbh workflow dynamic start
flint orbh workflow after
flint orbh workflow after-procedure
flint orbh workflow arm
flint orbh workflow manage
flint orbh workflow show
flint orbh workflow list
flint orbh workflow close
flint orbh workflow cancel
flint orbh workflow fire-event
flint orbh compact
flint orbh compact start
flint orbh compact handoff
flint orbh compact test
flint orbh compact finish
flint orbh compact abort
flint orbh command-action
flint orbh command-action claim
flint orbh command-action recover
flint orbh switch
flint orbh copy-spools
flint orbh store
flint orbh store frontier
flint orbh store frontier rebuild
flint orbh store epoch
flint orbh store epoch show
flint orbh store epoch raise
flint orbh store epoch lower
flint orbh fork
flint orbcode
flint orbcode list
flint orbcode view
flint orbcode check
flint orbcode review
flint orbcode diff
flint orbcode apply
flint orbcode discard
flint orbcode history
flint orbcode restore
flint orbcode set
flint orbcode remove
flint orbcode parts
flint ite
flint ite flow
flint ite flow list
flint ite flow show
flint ite flow start
flint ite flow runs
flint ite flow status
flint ite flow done
flint ite flow answer
flint ite flow skip
flint ite flow dispatch
flint ite flow reconcile
flint ite flow waive
flint ite flow approve
flint ite flow pause
flint ite flow resume
flint ite flow cancel
flint ite system
flint ite statements
flint ite evidence
flint ite instruments
flint ite read
flint ite notice
flint ite log
flint ite brief
flint ite brief ack
flint ite vitals
flint ite prompt
flint ite adopt
flint ite revision
flint ite revision list
flint ite revision show
flint ite revision propose
flint ite revision apply
flint ite revision revert
flint ite revision discard
flint ite list
flint ite frameworks
flint ite map
flint ite view
flint ite view history
flint ite view restore
flint ite view remove
flint ite check
flint ite create
flint ite rename
flint ite archive
flint ite part
flint ite part add
flint ite part set
flint ite include
flint ite link
flint ite contact
flint ite contact add
flint ite contact remove
flint ite run
flint ite act
flint ite observe
flint ite observations
flint ite focus
flint ite diff
flint ite apply
flint ite discard
flint ite job
flint tinderbox
flint tinderbox init
flint tinderbox start
flint tinderbox import
flint tinderbox add
flint tinderbox remove
flint tinderbox rename
flint tinderbox dissolve
flint tinderbox sync
flint tinderbox repo
flint tinderbox repo add
flint tinderbox repo remove
flint tinderbox repo list
flint tinderbox git
flint tinderbox git sync
flint tinderbox git status
flint tinderbox git resume
flint tinderbox git resolve
flint tinderbox git publish
flint tinderbox org
flint tinderbox org set
flint tinderbox status
flint tinderbox check
flint tinderbox heal
flint orbit
flint orbit serve
flint blacksmith
flint blacksmith daemon
flint blacksmith status
flint blacksmith ls
flint blacksmith kill
flint blacksmith reload-plugins
flint blacksmith restart-server
flint blacksmith restart-steel
flint blacksmith stop
flint blacksmith restart
flint blacksmith logs
flint setup
flint setup shell-integration
flint setup url-handler
flint setup computer
flint setup guide
flint setup font
flint setup onboard
flint setup handoff
flint setup handoff check
flint doctor
flint fix
flint feedback
flint git
flint git init
flint git sync
flint git merge
flint git resolve
flint git publish
flint helper
flint helper type
flint helper type newnumber
flint helper artifact
flint helper artifact create
flint helper rename
flint helper delete
flint helper router
flint helper router start
flint helper stitch
flint helper uuid
flint helper id
flint helper pins
flint helper pins set
flint helper pins add
flint helper pins remove
flint helper pins list
flint helper pins clear
flint features
flint where
flint env
flint env use
flint env clear
flint whoami
flint auth-status
flint login
flint logout
flint foundation
flint foundation list
flint foundation inspect
flint foundation logs
flint foundation ghosts
flint foundation totals
flint foundation prune
flint foundation version
flint foundation storage
flint foundation top
nuu
nuu setup
nuu login
nuu logout
nuu whoami
nuu env
nuu env use
nuu env clear
nuu config
nuu config name
nuu config machine-name
nuu config org
nuu config org show
nuu config org set
nuu config org unset
nuu config shared
nuu config shared get
nuu config shared set
nuu config shared unset
nuu org
nuu org list
nuu org create
nuu org get
nuu org members
nuu org invite
nuu org invitations
nuu org accept
nuu machine
nuu machine id
nuu home
nuu home doctor
nuu home migrate
nuu home paths
nuu places
nuu places list
nuu places add
nuu places remove
nuu places import
nuu client
nuu client serve
nuu client start
nuu client port
nuu client stop
nuu client status
nuu client install-service
nuu client enroll
nuu resolve
nuu session
nuu session start
nuu session transfer
nuu station
nuu station send
nuu station list
nuu topology
nuu net
nuu net machines
nuu net grant
nuu net revoke
nuu net forget
nuu net grants
nuu net health
nuu net org
nuu net org create
nuu net org secret
nuu net org refresh
nuu trace
nuu styles
Tools for Developers
flint entity
flint entity ask
flint entity roster
flint entity answer
flint plate
flint plate list
flint plate install
flint plate update
flint plate reinstall
flint plate dev
flint plate info
flint orbtest
flint orbtest init
flint orbtest validate
flint orbtest check
flint orbtest upgrade
flint orbtest run
flint orbtest drift
flint orbtest regen
flint orbtest doctor
flint orbtest skills
flint orbtest author
flint orbtest register
flint orbtest snapshot
flint orbtest approve
flint orbtest page
flint orbtest behaviour
flint orbtest behaviour list
flint orbtest behaviour show
flint orbtest behaviour run
flint orbtest behaviour bind
flint orbtest behaviour drift
flint orbtest behaviour heal
flint orbtest behaviour fixture
flint orbtest behaviour fixture list
flint orbtest behaviour fixture build
flint orbtest behaviour fixture author
flint orbtest behaviour place
flint orbtest behaviour place list
flint orbtest behaviour place show
flint orbtest behaviour place check
flint orbtest coverage
flint orbtest profile
flint orbtest profile list
flint orbtest profile show
flint orbtest profile add
flint orbtest profile set
flint orbtest profile unset
flint orbtest profile rename
flint orbtest profile remove
flint orbtest environment
flint orbtest environment list
flint orbtest environment show
flint orbtest environment add
flint orbtest environment set
flint orbtest environment unset
flint orbtest environment rename
flint orbtest environment remove
flint orbtest step
flint orbtest step list
flint orbtest step show
flint orbtest step set
flint orbtest step unset
flint orbtest step rename
flint orbtest step remove
flint orbtest step mark
flint orbtest task
flint orbtest task list
flint orbtest task show
flint orbtest task set
flint orbtest task unset
flint orbtest task rename
flint orbtest task remove
flint orbtest task mark
flint orbtest task step
flint orbtest task step add
flint orbtest task step set
flint orbtest task step remove
flint orbtest task check
flint orbtest task check add
flint orbtest task check list
flint orbtest task check remove
flint orbtest task negative
flint orbtest task negative add
flint orbtest story
flint orbtest story list
flint orbtest story show
flint orbtest story add
flint orbtest story set
flint orbtest story unset
flint orbtest story rename
flint orbtest story remove
flint orbtest story criterion
flint orbtest story criterion add
flint orbtest story criterion set
flint orbtest story criterion remove
flint orbtest suite
flint orbtest suite list
flint orbtest suite show
flint orbtest suite add
flint orbtest suite set
flint orbtest suite unset
flint orbtest suite rename
flint orbtest suite remove
flint orbtest suite entry
flint orbtest suite entry add
flint orbtest suite entry set
flint orbtest suite entry unset
flint orbtest suite entry remove
flint orbtest suite mask
flint orbtest suite mask add
flint orbtest suite mask remove
flint orbtest requirement
flint orbtest requirement list
flint orbtest requirement show
flint orbtest requirement add
flint orbtest requirement set
flint orbtest requirement unset
flint orbtest requirement remove
flint orbtest settings
flint orbtest settings show
flint orbtest settings set
flint orbtest settings unset
flint orbtest services
flint orbtest services set
flint orbtest services remove
flint orbtest secret
flint orbtest secret list
flint orbtest secret add
flint orbtest secret enter
flint orbtest baseline
flint orbtest baseline list
flint orbtest baseline remove
flint orbtest baseline prune
flint orbtest runs
flint orbtest runs prune
flint orbtest brief
flint orbtest brief list
flint orbtest brief show
flint orbtest brief add
flint orbtest brief set
flint orbtest brief unset
flint orbtest brief rename
flint orbtest brief remove
flint orbtest components
flint orbtest components set
flint orbtest components remove
flint orbtest fixture
flint orbtest fixture add
flint orbtest fixture list
flint orbtest fixture remove
flint server
flint server start
flint server daemon
flint server dev
flint server status
flint server stop
flint server list
flint steel
flint steel serve
flint steel preferences
flint steel state
flint steel boards
flint mcp
flint mcp serve