CLI reference¶
Run Point inside the Git repository that owns the context.
point stash¶
point stash \
[--title <text>] \
[--session-file <session.jsonl>] \
[--source-agent <name>] \
[--source-session <id>] \
[--parent <point>]... \
[--branch <name>] \
[--no-active-parents]
Preserve unfinished participant-visible Session events as a Local Stash Point. If --session-file is omitted and standard input is piped, Point reads JSONL from standard input.
Each non-empty line must be a JSON object with a non-empty type:
{"id":"e1","type":"message","role":"user","content":"Keep retry bounded."}
{"id":"e2","type":"message","role":"assistant","content":"I will verify the failure path."}
{"id":"e3","type":"tool_call","call_id":"t1","name":"test","arguments":{"target":"retry"}}
{"id":"e4","type":"tool_result","call_id":"t1","name":"test","content":"passed"}
The CLI uses active resumed Points and the current Point Branch Tip as parents. Saving advances that branch; the first normal save creates master.
--no-active-parents creates intentionally unrelated work. It is not needed for normal saving.
point list¶
List immutable Points, type, visibility, branch tips, and title.
point show¶
Inspect a Point without changing Session lineage. --full renders its saved events. --json returns structured events.
point resume¶
With no argument, Resume selects master. It traverses every reachable parent in oldest-to-newest order and returns each saved Session exactly once. The selected tips become parents of the next saved Point.
An exact Point ID resumes detached by default. A named Point Branch remains active. Use --branch to create or continue an explicitly named direction.
Several arguments create multi-parent lineage. Point does not merge their natural-language content.
point branch¶
List Point Branches or create one at a Point. Point Branches are ordinary Git Branches under refs/heads/point-context/v1/heads/ and are independent from code branches by namespace.
point push¶
Publish the selected Point and every ancestor required to reconstruct it. When the target is a local Point Branch, Point also publishes that movable Ref. Unrelated local Points stay local.
--with-code atomically includes the current Git Branch in the same Git push.
Point uses ordinary branches under point-context/v1/* on every Git remote. There is no transport selection or Ref conversion.
point fetch¶
Fetch immutable Point nodes and published Point Branches. Remote branches appear as <remote>/<branch>. A unique remote master can be resumed with plain point resume when no local master exists.
point doctor¶
Inspect the current Git repository, Point count and branches, configured remote,
ordinary branch namespace, and optional commit Hook. Use --json for structured output.
The command is local and does not contact the remote server.
point hooks¶
Install or inspect the optional post-commit integration. Point refuses to overwrite an unrelated existing Hook.
The Hook creates a Commit Point only after an Agent adapter has prepared real Session events for the same Git base and staged tree. A normal commit without prepared events creates no Point.
Integration commands¶
Agent integrations use these commands; people normally do not:
_prepare-commit records the new new Session events, active Point parents, Point Branch Tip, current Git HEAD, and staged Git tree. The Hook calls _post-commit after a successful commit. If the commit fails, the integration calls _cancel-commit so stale context cannot attach to a later change.
Machine-readable output¶
Place --json before the subcommand:
Agent environments normally provide a stable Session identifier automatically. Integrations without one can set POINT_SESSION_ID; this plumbing is intentionally absent from the normal user workflow.