Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t.sh
46 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Merge branch 'worktree-agent-ab3c375781462035f'1{
2 "about": "Every g1t CLI invocation the plugin's hooks (hooks/g1t.mjs) can make: each command, the flags it passes and the values they take. The hook tests' stand-in CLI (test/fake-g1t.mjs) refuses anything not here, and crates/g1t's tests parse every command here, with every value, with the real CLI's parser, so the hooks never send what the CLI rejects. minimum_version is the oldest CLI that accepts all of it: the hooks say so when the installed CLI is older. Types: text, number, switch, json (--json, optionally with fields), or a list of the values accepted.",
3 "minimum_version": "0.3.2",
4 "commands": [
5 { "command": [], "flags": { "--version": "switch" } },
6 {
7 "command": ["session", "start"],
8 "flags": {
9 "--harness": ["claude_code"],
10 "--harness-session-id": "text",
11 "--issue": "number",
12 "--parent": "text",
13 "--no-remember": "switch",
14 "--agent-type": "text",
15 "--task": "text",
16 "--prompt": "text",
17 "--model": "text",
18 "--json": "json"
19 },
20 "required": ["--harness", "--harness-session-id"]
21 },
22 {
23 "command": ["session", "log"],
24 "flags": { "--kind": ["prompt", "tool_call", "skill"], "--key": "text" },
25 "positionals": ["text"],
26 "dash_dash": true,
27 "required": ["--kind"]
28 },
29 {
30 "command": ["session", "touch"],
31 "flags": { "--file": "text", "--commit": "text", "--branch": "text", "--issue": "number" },
32 "repeatable": ["--file", "--commit", "--branch", "--issue"],
33 "one_of": ["--file", "--commit", "--branch", "--issue"]
34 },
35 { "command": ["session", "end"], "flags": { "--reason": "text", "--result": "text" } },
Work with no issue yet is a session of its own, titled with what it is for, until it becomes a change: Claude Code's plugin titles each session from its first prompt that is not a slash command (its first line or sentence, without code blocks or markdown, up to 80 characters cut on a word), in the background, and only when the session has no title, so a title Claude, a person or an earlier prompt set is never replaced; g1t session attach --title names one by hand and replaces the prompt's. Nothing is titled with prompts kept back.36 { "command": ["session", "heartbeat"], "flags": { "--json": "json" } },
37 { "command": ["session", "attach"], "flags": { "--title": "text" }, "required": ["--title"] },
Merge branch 'worktree-agent-ab3c375781462035f'38 { "command": ["work", "context"], "flags": {}, "positionals": ["number"] },
39 {
40 "command": ["api"],
41 "flags": { "-f": "text", "--silent": "switch" },
42 "positionals": ["text"],
43 "repeatable": ["-f"]
44 }
45 ]
46}

This file's history is long; its oldest lines are credited to the oldest commit read.