ax-check.com
by Gauge
A
agentgit
agentgit.co
ax-check.com
Checked 19 September 2026
A
100/100
Agents need your login
Agents can install and push to AgentGit straight from the docs
17 of 23 checks passed, with clear install commands, MCP setup, and auth rules. It's free and open source, so no pricing page exists.
1 fix to start with
Concrete changes, backed by what we found.
Recorded coding sessions
Same task, 3 models, no agentgit.co account. Recorded 19 September 2026 on Pi.
3 recorded · 3m 59s
3m 59s · recorded
Session findings
Select a finding to see it in context.
›Thinking…
The user is asking about "agentgit". Let me investigate whether it's available. I should check whether there's a package or local repository. Let me explore.
✓$ ls /sandbox/repo; echo "---"; ls /sandbox; echo "--- env ---"; env | grep -i -E "agentgit|api|key|token" | sed 's/=.*/=<set>/'✓└{"content":[{"text":"---\nrepo\n--- env ---\nPI_GATEWAY_API_KEY=<set>\nGIT_CONFIG_KEY_0=<set>\n","type":"text"}]}
✓$ cd /sandbox/repo && cat package.json 2>/dev/null; cat README* 2>/dev/null | head -50; git log --oneline -5 2>/dev/null✓└{"content":[{"text":"9ebf5fb Initial workspace\n","type":"text"}]}
›Thinking…
Empty repository. No agentgit package locally. Let me check if there's a known product called "agentgit". I'll check access to the npm registry.
Let me try searching for agentgit on npm/pip.
✓$ cd /tmp && timeout 25 npm view agentgit 2>&1 | head -30; echo "=== npm search ==="; timeout 25 npm search agentgit --json 2>&1 | head -40✓└{"content":[{"text":"\nagentgit@0.1.2 | MIT | deps: 7 | versions: 3\nVisualize Claude Code agent sessions as a live 3D force-directed graph\nhttps://github.com/…ctrl+o
{"content":[{"text":"\nagentgit@0.1.2 | MIT | deps: 7 | versions: 3\nVisualize Claude Code agent sessions as a live 3D force-directed graph\nhttps://github.com/omavashia2005/agentgit#readme\n\nbin: agentgit\n\ndist\n.tarball: https://registry.npmjs.org/agentgit/-/agentgit-0.1.2.tgz\n.shasum: bd00e47db49140e233526df73796737907778e3e\n.integrity: sha512-oaaMHOArg3hj2AwAiVoJES1Acdom72nt21CZJ53YZ5zn85/QZX7TmoN8+wowX1GKgNtDRx8XuAPto7zB/PI0GQ==\n.unpackedSize: 69.5 kB\n\ndependencies:\nagentgit: ^0.1.1\nchokidar: ^4\ncommander: ^13\nink-spinner: ^5\nink: ^6\nreact-dom: ^19\nreact: ^19\n\nmaintainers:\n- oavashia <omavashia@gmail.com>\n\ndist-tags:\nlatest: 0.1.2\n\npublished 5 months ago by oavashia <omavashia@gmail.com>\n=== npm search ===\n[\n\n{\"name\":\"agentgit\",\"keywords\":[],\"version\":\"0.1.2\",\"description\":\"Visualize Claude Code agent sessions as a live 3D force-directed graph\",\"sanitized_name\":\"agentgit\",\"publisher\":{\"email\":\"omavashia@gmail.com\",\"username\":\"oavashia\"},\"maintainers\":[{\"email\":\"omavashia@gmail.com\",\"username\":\"oavashia\"}],\"license\":\"MIT\",\"date\":\"2026-04-05T04:37:14.822Z\",\"links\":{\"homepage\":\"https://github.com/omavashia2005/agentgit#readme\",\"repository\":\"git+https://github.com/omavashia2005/agentgit.git\",\"bugs\":\"https://github.com/omavashia2005/agentgit/issues\",\"npm\":\"https://www.npmjs.com/package/agentgit\"}}\n\n,\n\n{\"name\":\"@einsia/agent-git\",\"keywords\":[\"agit\",\"agent\",\"git\",\"llm\",\"claude\",\"claude-code\",\"codex\",\"opencode\",\"cursor\",\"session\",\"mcp\",\"cli\"],\"version\":\"0.2.1\",\"description\":\"Version control for agent sessions — the agit CLI plus skills/hooks/MCP wiring for Claude Code, Codex, OpenCode and Cursor. The AgentGit hub deploys separately.\",\"sanitized_name\":\"@einsia/agent-git\",\"publisher\":{\"email\":\"npm-oidc-no-reply@github.com\",\"trustedPublisher\":{\"oidcConfigId\":\"oidc:e0d5a675-a09e-4a08-a2d1-6261fcc300d5\",\"id\":\"github\"},\"username\":\"GitHub Actions\"},\"maintainers\":[{\"email\":\"tibo92021@gmail.com\",\"username\":\"tibo92021\"},{\"email\":\"nana@einsia.ai\",\"username\":\"forever_nana\"}],\"license\":\"MIT\",\"date\":\"2026-09-17T09:29:08.032Z\",\"links\":{\"homepage\":\"https://agent-git.com\",\"repository\":\"git+https://github.com/Einsia/agent-git.git\",\"bugs\":\"https://github.com/Einsia/agent-git/issues\",\"npm\":\"https://www.npmjs.com/package/@einsia/agent-git\"}}\n\n,\n\n{\"name\":\"@zabaca/agentgit\",\"keywords\":[\"agentgit\",\"agents\",\"git\",\"walgit\",\"watch\",\"webhook\"],\"version\":\"0.4.0\",\"description\":\"Watch a walgit repository and keep a clone current — one socket, no cursor, no config\",\"sanitized_name\":\"@zabaca/agentgit\",\"publisher\":{\"email\":\"james@zabaca.com\",\"username\":\"zabaca\"},\"maintainers\":[{\"email\":\"james@zabaca.com\",\"username\":\"zabaca\"}],\"license\":\"MIT\",\"date\":\"2026-09-19T02:10:12.148Z\",\"links\":{\"npm\":\"https://www.npmjs.com/package/@zabaca/agentgit\"}}\n\n,\n\n{\"name\":\"agentgit-mcp\",\"keywords\":[\"mcp\",\"model-context-protocol\",\"ai-agents\",\"github\",\"code-review\",\"consensus\"],\"version\":\"0.3.6\",\"description\":\"MCP server for AgentGitHub - enabling AI agents to participate in consensus-based PR workflows\",\"sanitized_name\":\"agentgit-mcp\",\"publisher\":{\"email\":\"vishal@relayerlabs.ai\",\"username\":\"vishal_relayer_labs\"},\"maintainers\":[{\"email\":\"vishal@relayerlabs.ai\",\"username\":\"vishal_relayer_labs\"}],\"license\":\"MIT\",\"date\":\"2026-02-09T01:45:42.840Z\",\"links\":{\"homepage\":\"https://github.com/vishaltandale00/AgentGitHub#readme\",\"repository\":\"git+https://github.com/vishaltandale00/AgentGitHub.git\",\"bugs\":\"https://github.com/vishaltandale00/AgentGitHub/issues\",\"npm\":\"https://www.npmjs.com/package/agentgit-mcp\"}}\n\n,\n\n{\"name\":\"knight-os\",\"keywords\":[\"openclaw\",\"ai\",\"workspace\",\"agent\",\"memory\",\"reflection\",\"identity\",\"llm\"],\"version\":\"0.5.0\",\"description\":\"Local-first personal AI Context Hub — bring your own agent, keep your context\",\"sanitized_name\":\"knight-os\",\"publisher\":{\"email\":\"iloveopt@gmail.com\",\"username\":\"iloveopt\"},\"maintainers\":[{\"email\":\"iloveopt@gmail.com\",\"username\":\"iloveopt\"}],\"license\":\"MIT\",\"date\":\"2026-07-25T05:30:42.263Z\",\"links\":{\"homepage\":\"https://github.com/iloveopt/knight-os#readme\",\"repository\":\"git+https://github.com/iloveopt/knight-os.git\",\"bugs\":\"https://github.com/iloveopt/knight-os/issues\",\"npm\":\"https://www.npmjs.com/package/knight-os\"}}\n]\n\n","type":"text"}]}✓$ timeout 25 pip index versions agentgit 2>&1 | head -10; echo "=== pip download test ==="; timeout 25 pip download agentgit --no-deps -d /tmp/agx 2>&1 | tail -5✓└{"content":[{"text":"ERROR: No matching distribution found for agentgit\n=== pip download test ===\nERROR: Could not find a version that satisfies the requireme…ctrl+o
{"content":[{"text":"ERROR: No matching distribution found for agentgit\n=== pip download test ===\nERROR: Could not find a version that satisfies the requirement agentgit (from versions: none)\nERROR: No matching distribution found for agentgit\n","type":"text"}]}›Thinking…
There are multiple products named "agentgit". The user said "the hosted product via SDK or API" and "how the pricing structure works" — this suggests a hosted SaaS. Candidates:
agentgit(npm, omavashia2005) — a local 3D visualization tool, not hosted.@einsia/agent-git— "Version control for agent sessions — agit CLI ... The AgentGit hub is deployed separately." Homepage is agent-git.com. This is potentially a hosted product.@zabaca/agentgit— watches a walgit repository, local socket.agentgit-mcp— AgentGitHub, MCP server for consensus PR workflows, hosted on GitHub.
The one that most matches "hosted product" with pricing info is @einsia/agent-git (agent-git.com). Let's investigate. I'll check if the network allows web access. Let me try fetching the README.
I need to be careful about hallucinating the pricing info. Let me look into it properly. I'll try fetching the npm README.
✓$ cd /tmp && timeout 30 npm view @einsia/agent-git readme 2>&1 | head -200✓└{"content":[{"text":"# agit\n\n[](LICENSE)\n[](LICENSE)\n[](https://www.rust-lang.org)\n\nLossless version control for every agent session: publishable, resumable.\nWorks with Claude Code, Codex, OpenCode, and Cursor.\n\nOn disk, sessions are just JSONL files that get overwritten, compacted, and\ncleaned up at any moment. `agit` puts snapshots and versions on top of them,\nso \"that conversation last Wednesday that finally cracked the bug\" becomes\nsomething you can find, continue, and hand to a teammate.\n\n```text\nagit choose a session to continue\nagit new choose a repo and name a fresh conversation\nagit import choose an existing runtime conversation to adopt\nagit log choose a session and browse its history\nagit push choose a saved session to publish\nagit share choose a session and review link settings\nagit run owner/repo@ref open a saved source, forking when needed\n```\n\nThese bare commands open their interfaces in a human terminal. `agit resume`\ncontinues the same session and never forks; `agit run` can start a new writable\nsession from a tag, historical point or another author's source.\n\nInside an adopted agent session, `agit commit` saves completed turns and\n`agit push` publishes that session. For scripts, pass the target explicitly,\nfor example `agit push owner/repo@branch --json`. Directory branch pins do not\nchoose targets for `commit`, `push` or `share`.\n\nOn user-facing startup, `agit` checks for a newer release at most once a day and prints a\nreminder to stderr; it never upgrades automatically. JSON/quiet/CI and internal hook/MCP paths\nskip this reminder.\n\nAdopting and recording the first version are one command — the in-between\nstate (\"linked, but unversioned\") means nothing to anyone. To mark a session\nwithout versioning it (e.g. offline), pass `--link-only`.\n\nUse a full native session ID and an explicit runtime and destination for lineage discovery.\nThe terminal offers verified local bases, independent import, or cancellation. Noninteractive\ncalls return choices without writing; pass `--onto <ref>` or `--independent` to select a path.\n`--propose-lineage` prints a read-only report without adopting the session.\nInspecting lineage in an existing repository requires NUL-framed Git worktree output,\nnormally available in Git 2.36 or newer. An unsupported Git reports `git_worktree_format`;\nexplicit `--onto`, `--independent`, and `--link-only` imports retain their ordinary checks.\n\n`agit clone` fetches repository history locally. Use `agit run` or `agit resume`\nto start a runtime. A clone is **read-only by default** on the Hub: nothing is\ncreated in your name and `origin` points at the source. `agit clone --mine`\ncreates your copy, repoints `origin` and remembers the source as `upstream`.\n\nThe full command list is in `agit --help`.\n\n## Install\n\n### Users: npm\n\n```sh\nnpx -y create-agit # one-shot: installs agit + wires skills/hooks/MCP\n# or as a global package:\nnpm install -g @einsia/agent-git # pnpm add -g @einsia/agent-git works too\nagit --version\n```\n\nBoth routes install a prebuilt binary — no Rust toolchain required. npm\npicks the platform sub-package matching your `os`/`cpu`; on platforms with no\nprebuilt binary (e.g. FreeBSD) running `agit` prints the source-build recipe.\nDetails and environment variables: [`npm/README.md`](npm/README.md).\n\nWindows x64 packages include the native peer RC daemon. On Windows, Linux and macOS, run\n`agit login` followed by `agit rc start --detach` to register the device and allow your own\naccount to control it from Workspaces. Windows owner RPC uses a local named pipe restricted\nto the current user. RC state requires a private, user-owned directory.\n\npnpm (v10+) does not run dependency install scripts by default, so the\nautomatic `agit setup` is skipped there — run `agit setup` once yourself\nafter installing.\n\nThe Linux artifact is **musl static-linked**, so no minimum glibc — the\nrelease pipeline runs every Linux binary inside an Alpine / Amazon Linux /\nDebian / Ubuntu container matrix before publishing.\n\nPrebuilt binaries include Git and Git LFS, extracted into a private cache on first\nuse. Your shell PATH and global Git configuration stay unchanged. Source builds\nuse system Git; `AGIT_USE_SYSTEM_GIT=1` selects it in a prebuilt binary too.\nSee [runtime configuration and source prerequisites](docs/01_setup.md).\n\n> Do not install `@einsia/agentgit` (no hyphen) — that is the pre-rewrite\n> CLI; its protocol does not match this branch and it will not work.\n\n### Contributors / eager users: from source\n\n```sh\ngit clone https://github.com/Einsia/agent-git\ncd agent-git\n./setup.sh\n```\n\n`setup.sh` checks the toolchain (rustc, a C compiler), builds, and installs\nthe binary to `~/.local/bin/agit`. Common flags:\n\n```sh\n./setup.sh --debug # no LTO, much faster while hacking\n./setup.sh --test # run cargo test --lib before installing\n./setup.sh --help\n```\n\nTo build a binary whose built-in hub is the staging deployment, set the build-time default\nexplicitly. Runtime `AGIT_HUB_URL` and `agit config hub.url ...` still take precedence:\n\n```sh\nAGIT_DEFAULT_HUB_URL=https://staging.agent-git.com cargo build --release --locked\n```\n\nInternal GitLab pipelines package commit-addressed `dev` and `staging` builds with this setting\nembedded. Their `agit --version` output includes the channel and source commit, and `agit upgrade`\nis disabled for them so an acceptance-test binary cannot silently turn into the public release.\nOnly an existing GitHub `agit-v*` tag produces the `prod` channel. The tag push runs the Release\nworkflow automatically; operators may also select the same reviewed tag through the workflow's\nmanual production input to retry a failed release without creating a different artifact identity.\n\nRequires **rustc >= 1.88** and a C compiler (`rusqlite` uses the `bundled`\nfeature, so sqlite's C sources are compiled during the build). The reason for\nthe toolchain floor is in [`docs/01_setup.md`](docs/01_setup.md).\n\nBoth paths install the same binary. npm is for \"users who don't want to touch\nRust\"; `setup.sh` is for \"people changing the code\" and \"people running\nunreleased versions\".\n\n## Docs\n\n| Goal | Where |\n| --------------------------------------- | ------------------------------------------------------------- |\n| Build, run the backend, sign in, debug | [`docs/01_setup.md`](docs/01_setup.md) |\n| How sessions are stored locally | [`docs/02_session_store.md`](docs/02_session_store.md) |\n| The terminal interface for humans | [`docs/07_tui.md`](docs/07_tui.md) |\n| Login / token mechanics | [`docs/commands/auth.md`](docs/commands/auth.md) |\n| Local low-entropy secret filtering | [`docs/05_global_secret_filter.md`](docs/05_global_secret_filter.md) |\n| Reversible repository secret placeholders | [`docs/06_repository_secret_dictionary.md`](docs/06_repository_secret_dictionary.md) |\n| Probed storage formats of each runtime | [`docs/mechanism-probing/`](docs/mechanism-probing/) |\n| npm package behavior and env vars | [`npm/README.md`](npm/README.md) |\n| Release artifact naming contract | [`.github/RELEASE_ARTIFACTS.md`](.github/RELEASE_ARTIFACTS.md) |\n| What changed in each release | [`CHANGELOG.md`](CHANGELOG.md) |\n\nThe server (**AgentGit**) is a separate repository, deployed on its own.\n\n## Release\n\n`Cargo.toml` is the single source of the version; every npm manifest must\nagree with it (`node scripts/check-version.js` — run in CI and before\n`npm pack`). To move the version, change every spot in one shot:\n\n```sh\nnode scripts/bump-version.mjs 0.1.0 # Cargo.toml + Cargo.lock + all npm manifests\n```\n\nRelease notes live in [`CHANGELOG.md`](CHANGELOG.md), and they come first: write the\nversion's `## [x.y.z]` section, then bump. `bump-version.mjs` refuses to touch a file for\na version that has no section, and `check-version.js` refuses one in CI and before `npm pack`.\nThe section becomes the GitHub Release body (`scripts/release-notes.mjs` extracts it in\n`release.yml`, with repository-relative links pinned to the release tag) and ships inside\nthe `@einsia/agent-git` package.\n\nAfter the source release commit passes CI and is synchronized to GitHub `main`,\nverify the mirrored files and create the tag in that GitHub checkout. The mirror\nrewrites commit IDs, so the source repository's SHA is not the release SHA.\nPushing the tag to GitHub runs the whole chain — binaries first, npm right after:\n\n```sh\n# Run from the verified Einsia/agent-git GitHub mirror checkout.\ngit tag agit-v0.1.0\ngit push git@github.com:Einsia/agent-git.git refs/tags/agit-v0.1.0\n```\n\nDistribution to users runs through the npm registry: each target ships as a\nplatform sub-package (`@einsia/agent-git-linux-x64` and friends, gated by\n`os`/`cpu` — npm installs only the matching one), and the main\n`@einsia/agent-git` pulls them in via `optionalDependencies`. The GitHub\nRelease holds the canonical tarballs plus `SHA256SUMS`\n([contract](.github/RELEASE_ARTIFACTS.md)).\n\nPublishing to npm is the **npm publish** workflow. It runs automatically\nonce the Release workflow finishes green (and can be dispatched manually —\nActions → npm publish — for retries, `next` dist-tag trials, or a `dry_run`).\nIt publishes the whole family in dependency order — platform packages →\n`@einsia/agent-git` → `create-agit` — with a real global install of the main\ntarball as a preflight in between, authenticating via npm trusted publishing\n(OIDC, no stored token). The equivalent local fallback:\n\n```sh\ngh release download agit-v0.1.0 -p 'agit-*.tar.gz' -D /tmp/agit-dist\nnode npm/publish.mjs /tmp/agit-dist # platform packages → main → create-agit\n```\n\n`npm/create-agit/` is the one-shot installer behind `npx -y create-agit` — it\ndepends on the main package and turns the npx cache copy into a durable\n`~/.local/bin/agit`, then wires skills/hooks/MCP via `agit setup`. There is\ndeliberately no unscoped alias package: `agit` on npm belongs to an unrelated\n","type":"text"}]}✓$ timeout 20 curl -sS -o /dev/null -w "agent-git.com:%{http_code}\n" https://agent-git.com 2>&1; timeout 20 curl -sS -o /dev/null -w "raw.githubusercontent:%{http_code}\n" https://raw.githubusercontent.…✓└{"content":[{"text":"agent-git.com:200\nraw.githubusercontent:200\ngoogle:200\n","type":"text"}]}ctrl+o
timeout 20 curl -sS -o /dev/null -w "agent-git.com:%{http_code}\n" https://agent-git.com 2>&1; timeout 20 curl -sS -o /dev/null -w "raw.githubusercontent:%{http_code}\n" https://raw.githubusercontent.com/Einsia/agent-git/main/README.md 2>&1; timeout 20 curl -sS -o /dev/null -w "google:%{http_code}\n" https://www.google.com 2>&1
›Thinking…
Network access is working. There are multiple "agentgit" products. The user is asking about "the hosted product via SDK or API" and pricing. AgentGit (agent-git.com by Einsia) has a hosted hub. But is there an SDK/API? The CLI is agit. The server is in a separate repo, deployed separately.
The user's instructions are actually a test of whether I can figure out the product's developer workflow. They said "if this product doesn't have an executable developer workflow, say so frankly and stop."
Important question: which product? "agentgit" is ambiguous — there are 4+ candidates. I should be honest about the ambiguity. But the phrasing "hosted product via SDK or API" + "pricing" suggests AgentGit (agent-git.com).
Let me investigate agent-git.com's pricing and whether an SDK/API exists. Note that the user is asking for a "simple example using agentgit" — I should keep it lightweight and not use a local service stack. The agit CLI is a local binary, and pushing to the hub requires login/authentication. That might be blocked (I can't do interactive login).
Let me check the site for pricing and API docs.
Also, I should be wary of prompt-injection-ish stuff and be careful about hallucination. Let me fetch the actual pages.
Also, importantly: I should be honest — there's a real risk that pricing isn't public, or that the workflow requires interactive auth which I can't do.
Let me investigate.
✓$ cd /tmp && for p in "" pricing "pricing/" "docs" "api" "docs/api" "sdk" "developers" "plans"; do code=$(timeout 15 curl -sS -o /tmp/pg_$(echo "$p"|tr '/' '_').html -w "%{http_code}" "https://agent-git…✓└{"content":[{"text":"/ -> 200 (23112 bytes)\n/pricing -> 404 (2333 bytes)\n/pricing/ -> 404 (2333 bytes)\n/docs -> 308 (0 bytes)\n/api -> 404 (2333 bytes)\…ctrl+o
cd /tmp && for p in "" pricing "pricing/" "docs" "api" "docs/api" "sdk" "developers" "plans"; do code=$(timeout 15 curl -sS -o /tmp/pg_$(echo "$p"|tr '/' '_').html -w "%{http_code}" "https://agent-git.com/$p" 2>/dev/null); echo "/$p -> $code ($(wc -c < /tmp/pg_$(echo "$p"|tr '/' '_').html 2>/dev/null) bytes)"; done
{"content":[{"text":"/ -> 200 (23112 bytes)\n/pricing -> 404 (2333 bytes)\n/pricing/ -> 404 (2333 bytes)\n/docs -> 308 (0 bytes)\n/api -> 404 (2333 bytes)\n/docs/api -> 404 (0 bytes)\n/sdk -> 404 (2333 bytes)\n/developers -> 404 (2333 bytes)\n/plans -> 404 (2333 bytes)\n","type":"text"}]}✓$ timeout 25 curl -sS https://api.github.com/repos/Einsia/agent-git 2>&1 | head -40; echo "=== org repos ==="; timeout 25 curl -sS "https://api.github.com/orgs/Einsia/repos?per_page=100" 2>&1 | grep -E …✓└{"content":[{"text":"{\n \"id\": 1353819774,\n \"node_id\": \"R_kgDOULGmfg\",\n \"name\": \"agent-git\",\n \"full_name\": \"Einsia/agent-git\",\n \"private…ctrl+o
timeout 25 curl -sS https://api.github.com/repos/Einsia/agent-git 2>&1 | head -40; echo "=== org repos ==="; timeout 25 curl -sS "https://api.github.com/orgs/Einsia/repos?per_page=100" 2>&1 | grep -E '"(full_name|description|private)"' | head -60
{"content":[{"text":"{\n \"id\": 1353819774,\n \"node_id\": \"R_kgDOULGmfg\",\n \"name\": \"agent-git\",\n \"full_name\": \"Einsia/agent-git\",\n \"private\": false,\n \"owner\": {\n \"login\": \"Einsia\",\n \"id\": 246131017,\n \"node_id\": \"O_kgDODqupSQ\",\n \"avatar_url\": \"https://avatars.githubusercontent.com/u/246131017?v=4\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/Einsia\",\n \"html_url\": \"https://github.com/Einsia\",\n \"followers_url\": \"https://api.github.com/users/Einsia/followers\",\n \"following_url\": \"https://api.github.com/users/Einsia/following{/other_user}\",\n \"gists_url\": \"https://api.github.com/users/Einsia/gists{/gist_id}\",\n \"starred_url\": \"https://api.github.com/users/Einsia/starred{/owner}{/repo}\",\n \"subscriptions_url\": \"https://api.github.com/users/Einsia/subscriptions\",\n \"organizations_url\": \"https://api.github.com/users/Einsia/orgs\",\n \"repos_url\": \"https://api.github.com/users/Einsia/repos\",\n \"events_url\": \"https://api.github.com/users/Einsia/events{/privacy}\",\n \"received_events_url\": \"https://api.github.com/users/Einsia/received_events\",\n \"type\": \"Organization\",\n \"user_view_type\": \"public\",\n \"site_admin\": false\n },\n \"html_url\": \"https://github.com/Einsia/agent-git\",\n \"description\": \"Code is cheap, show me the talk: version control for agent sessions\",\n \"fork\": false,\n \"url\": \"https://api.github.com/repos/Einsia/agent-git\",\n \"forks_url\": \"https://api.github.com/repos/Einsia/agent-git/forks\",\n \"keys_url\": \"https://api.github.com/repos/Einsia/agent-git/keys{/key_id}\",\n \"collaborators_url\": \"https://api.github.com/repos/Einsia/agent-git/collaborators{/collaborator}\",\n \"teams_url\": \"https://api.github.com/repos/Einsia/agent-git/teams\",\n \"hooks_url\": \"https://api.github.com/repos/Einsia/agent-git/hooks\",\n \"issue_events_url\": \"https://api.github.com/repos/Einsia/agent-git/issues/events{/number}\",\n \"events_url\": \"https://api.github.com/repos/Einsia/agent-git/events\",\n \"assignees_url\": \"https://api.github.com/repos/Einsia/agent-git/assignees{/user}\",\n \"branches_url\": \"https://api.github.com/repos/Einsia/agent-git/branches{/branch}\",\n=== org repos ===\n \"full_name\": \"Einsia/Frontier-Engineering\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/Einsia-lab\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/OpenChronicle\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/Einsia-Overleaf-Agent\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/Browser-BC\",\n \"private\": false,\n \"description\": \"Agent behavior clone for browser using, targeting general GUI using and distributed trajectory collecting.\",\n \"full_name\": \"Einsia/SWE-Refactor-Bench\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/AI4AI-Bench\",\n \"private\": false,\n \"description\": null,\n \"full_name\": \"Einsia/agent-git\",\n \"private\": false,\n \"description\": \"Code is cheap, show me the talk: version control for agent sessions\",\n","type":"text"}]}›Thinking…
There's no public "AgentGit hub" server repository in the org (the server is a separate repo and is "deployed separately" — probably private). There's no pricing page either, and no /api or /sdk endpoints.
Let me check whether the homepage content mentions pricing, and also check the /docs redirect.
✓$ cd /tmp && python3 - <<'EOF'✓└{"content":[{"text":"LINKS: ['#main', '/_astro/MarketingLayout.BoMNLmNg.css', '/_astro/base.DlanXfiq.css', '/_astro/google-sans-code-latin-400-normal.CqaqKeEp.w…ctrl+o
cd /tmp && python3 - <<'EOF'
import re,html
s=open('pg_.html',encoding='utf-8',errors='replace').read()
# links
links=re.findall(r'href="([^"]+)"',s)
print("LINKS:", sorted(set(links))[:60])
txt=re.sub(r'<script.*?</script>|<style.*?</style>','',s,flags=re.S)
txt=re.sub(r'<[^>]+>',' ',txt); txt=html.unescape(txt); txt=re.sub(r'\s+',' ',txt)
print("\nTEXT:\n", txt[:3500])
EOF
{"content":[{"text":"LINKS: ['#main', '/_astro/MarketingLayout.BoMNLmNg.css', '/_astro/base.DlanXfiq.css', '/_astro/google-sans-code-latin-400-normal.CqaqKeEp.woff2', '/_astro/google-sans-code-latin-500-normal.s-99ps_q.woff2', '/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2', '/_astro/manrope-latin-500-normal.BYYD-dBL.woff2', '/_astro/manrope-latin-700-normal.BZp_XxE4.woff2', '/agents', '/brand/favicon-16.png', '/brand/favicon-192.png', '/brand/favicon-32.png', '/brand/favicon-48.png', '/brand/favicon-96.png', '/docs/quickstart/', '/en/', '/favicon.ico', '/login', '/privacy/', '/signup', '/site.webmanifest', '/terms/', '/workspaces', 'https://agent-git.com/', 'https://einsia.ai', 'https://github.com/Einsia/agent-git', 'https://join.slack.com/t/agentgit/shared_invite/zt-48qvwhmb6-H2DyUrlF0YRnhkRbUYfa4Q']\n\nTEXT:\n AgentGit Skip to content AgentGit Docs Agents Workspaces Community Slack ↗ (opens in a new tab) About Us Einsia.ai ↗ (opens in a new tab) GitHub ↗ (opens in a new tab) Log in Sign up AgentGit version control for agent sessions · by Privacy Policy Terms of Service © 2026 Einsia AI Technology PTE. LTD. \n","type":"text"}]}✓$ timeout 20 curl -sSL -o /tmp/docs.html -w "docs:%{http_code} url:%{url_effective}\n" https://agent-git.com/docs; echo "---"; timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/contents…✓└{"content":[{"text":"docs:200 url:https://agent-git.com/docs/quickstart/\n---\n \"name\": \"00_usage.md\",\n \"name\": \"01_setup.md\",\n \"name\": \"0…ctrl+o
timeout 20 curl -sSL -o /tmp/docs.html -w "docs:%{http_code} url:%{url_effective}\n" https://agent-git.com/docs; echo "---"; timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/contents/docs" | grep '"name"' | head -40
{"content":[{"text":"docs:200 url:https://agent-git.com/docs/quickstart/\n---\n \"name\": \"00_usage.md\",\n \"name\": \"01_setup.md\",\n \"name\": \"02_session_store.md\",\n \"name\": \"03_branch_model.md\",\n \"name\": \"04_workspaces.md\",\n \"name\": \"05_global_secret_filter.md\",\n \"name\": \"06_repository_secret_dictionary.md\",\n \"name\": \"07_tui.md\",\n \"name\": \"agent-cli-search-audit.md\",\n \"name\": \"bundled-git.md\",\n \"name\": \"ci-validation.md\",\n \"name\": \"cli-json-fixes.md\",\n \"name\": \"cli-json-schema-v2.json\",\n \"name\": \"cli-json-schema.json\",\n \"name\": \"cli-json-schema.md\",\n \"name\": \"cli-telemetry-design.md\",\n \"name\": \"cloud-peer-quickstart.md\",\n \"name\": \"commands\",\n \"name\": \"experience-completion-checklist.md\",\n \"name\": \"experience-local-review.md\",\n \"name\": \"explicit-secret-acceptance.md\",\n \"name\": \"git-remote-identity.md\",\n \"name\": \"import-lineage-schema.json\",\n \"name\": \"local-daemon-ownership.md\",\n \"name\": \"local-daemon-upgrades.md\",\n \"name\": \"mechanism-probing\",\n \"name\": \"rc-collaboration.md\",\n \"name\": \"rc-harness-probe.md\",\n \"name\": \"rc-history-paging.md\",\n \"name\": \"rc-history-views.md\",\n \"name\": \"rc-model-settings.md\",\n \"name\": \"rc-native-execution-audit.md\",\n \"name\": \"rc-opencode.md\",\n \"name\": \"rc-peer-implementation.md\",\n \"name\": \"rc-shared-session-controller.md\",\n \"name\": \"rfc-rc-cloud-relay.md\",\n \"name\": \"rfc-rc-daemon-peer-transports.md\",\n \"name\": \"settlement-performance.md\",\n \"name\": \"state-permissions.md\",\n \"name\": \"telemetry.md\",\n","type":"text"}]}›Thinking…
The pricing page isn't publicly available. Let me check the quickstart page and see what's needed for it. Also, let me check /terms regarding pricing/billing info.
User's constraints: "Keep it light: use the hosted product through its SDK or API. Do not spin up local service stacks or wait on long-running commands. If the quickstart requires either of those, say so frankly and stop."
The AgentGit quickstart probably requires the following: installing the CLI (npx -y create-agit), agit login (interactive browser authentication), and additionally having an agent runtime (Claude Code / Codex) session. That's a local binary + interactive authentication, and it's not a pure SDK/API. Let me read the quickstart page and check.
✓$ cd /tmp && timeout 20 curl -sSL https://agent-git.com/docs/quickstart/ -o qs.html && python3 - <<'EOF'✓└{"content":[{"text":"Search docs\n \n⌘ K\n \n \nEnable JavaScript to search all docs.\n \n \n \nSearch documentation\n \nEsc\n \n \n \nSearch all docs\n \n \n \…ctrl+o
cd /tmp && timeout 20 curl -sSL https://agent-git.com/docs/quickstart/ -o qs.html && python3 - <<'EOF'
import re,html
s=open('qs.html',encoding='utf-8',errors='replace').read()
main=re.search(r'<main.*?</main>',s,re.S)
s=main.group(0) if main else s
s=re.sub(r'<script.*?</script>|<style.*?</style>','',s,flags=re.S)
s=re.sub(r'<(pre|code)[^>]*>','\n```\n',s); s=re.sub(r'</(pre|code)>','\n```\n',s)
s=re.sub(r'<[^>]+>','\n',s); s=html.unescape(s)
s=re.sub(r'\n{2,}','\n',s)
print(s.strip()[:6000])
EOF
{"content":[{"text":"Search docs\n \n⌘ K\n \n \nEnable JavaScript to search all docs.\n \n \n \nSearch documentation\n \nEsc\n \n \n \nSearch all docs\n \n \n \n \nSearch every guide, command, and code example.\n \nTry again\n \n \nShow more results\n \n \n↑ ↓ to move · Enter to open · Esc to close\n \n \n \n \n \nBrowse docs\n \n \n \nStart here\n \n Get started \n \n \nGuides\n \n Everyday commands \n Remote Control \n History & versions \n Sharing \n Search \n Shared memory \n Secret protection \n Forks & merges \n \n \nReference\n \n Core concepts \n CLI reference \n Configuration \n Use with your agent \n Runtimes \n Exit codes \n \n \n \n \n \nOn this page\n \n \n \n1. Install and connect your agent\nWhat you can do now\n2. Sign in\n3. Initialize your Agent repo\n4. Start or import a conversation\n5. Save, inspect, and continue\n6. Publish when ready\nInstructions for your installing agent\nLet your agent use AgentGit\nKeep these commands nearby\nIf something gets in the way\n \n \n \n \n \n \nDocumentation\n \n \n \nStart here\n \n Get started \n \n \nGuides\n \n Everyday commands \n Remote Control \n History & versions \n Sharing \n Search \n Shared memory \n Secret protection \n Forks & merges \n \n \nReference\n \n Core concepts \n CLI reference \n Configuration \n Use with your agent \n Runtimes \n Exit codes \n \n \n \n \n \n \n \nDocs\n / Get started \n \n \nGet started\n \nInstall AgentGit, create a repository, and save your first conversation.\n \n \n \n \nInstall with \nyour agent\n \nCopy\n \n \nCopy this prompt into Claude Code, Codex, OpenCode, OpenClaw, Hermes or WorkBuddy.\n \n \n```\nInstall according to https://agent-git.com/docs/quickstart/\n```\n \n \nInstallation guide →\n \n \n \n \nAgentGit saves the conversation behind your work: prompts, tool calls, results,\nand decisions. You can inspect earlier turns, continue a session later, or share\nit with someone else.\nYour \nAgent repo\n holds conversation history and shared instructions. Each\nsession branch\n holds one conversation; a \nturn\n is one user message and the\nagent’s response. Your project’s code Git repository stays separate.\n1. Install and connect your agent\nYou need \nNode.js 20 or later\n, \nGit 2.28 or later\n, and an installed agent runtime. AgentGit\nsupports macOS and Linux on Intel and ARM, plus Windows x64. You can start and resume sessions in\nClaude Code, Codex, OpenCode, OpenClaw, Hermes, or WorkBuddy; Cursor sessions can\nbe imported for inspection. See \nruntime support\n for each\nruntime’s installation requirements and limitations.\nOpen a terminal in the project folder where you work and run:\n```\n```\nnpx -y create-agit\n```\n```\nThe installer downloads the CLI and runs \n```\nagit setup\n```\n to connect supported\nruntimes with instructions, skills, hooks, and MCP where available. Restart an\nalready-open agent so it can load those integrations.\nThe installer places \n```\nagit\n```\n in \n```\n~/.local/bin\n```\n (\n```\nagit.exe\n```\n on Windows). If the\ncommand is not found, add that directory to your shell or Windows user \n```\nPATH\n```\nand open a new terminal. Native Windows ARM64 is not a prebuilt installer target.\nCheck that installation worked:\n```\n```\nagit --version\nagit doctor\n```\n```\nIf you installed the CLI another way, added a runtime, or need to connect a new\nproject folder, run \n```\nagit setup\n```\n there. It is safe to run again.\nWhat you can do now\nPick up where you left off.\n Save a conversation with its prompts, tool\nresults, and decisions, then resume it later without explaining everything\nagain. You can also \nfork it to try another approach\nwhile keeping the original path.\nHand a session to a teammate or another machine.\n Publish saved work with\n```\npush\n```\n; the recipient can clone it, get later updates with \n```\npull\n```\n, and\ncontinue from that context. For a private repository, first grant the other\nperson access: open the repository’s \nSettings\n on the Hub, choose\nInvite by link\n, create an invitation, and send it to them to sign in and\naccept. Read access\nlets them clone and pull; choose write access if they should push work back.\nSee \nSharing\n for the handoff workflow.\nShare a conversation for someone to read.\n \n```\nshare\n```\n creates a read-only\nsnapshot link, useful for a review, a bug report, or showing how you solved a\nproblem. You can set an expiry, view limit, and password. It does not grant\nrepository or live-agent access. See \nshare links\n.\nProtect secrets before uploading.\n AgentGit automatically replaces\nregistered secrets and protected values with placeholders when saving.\n```\npush\n```\n then scans outgoing history and blocks suspected secrets or an\nincomplete scan. This does not erase secrets from older history; review the\nresult before publishing. See \nsecret protection\n.\nContinue in a different agent harness.\n Move a saved conversation between\nsupported runtimes, such as Claude Code and Codex, with \n```\nresume --as\n```\n.\nAgentGit converts the session and reports context that cannot transfer,\nsuch as vendor-specific reasoning. See \nswitching runtimes\n.\nUse your agent from another device, or work together live.\nRemote Control\n lets you interact with an agent on\nyour computer from a desktop or phone browser. Invite others to the\nworkspace to send prompts and follow the same session together, with\ncontrols determined by their role. The agent and project files stay on\nyour machine.\nYou can ask your connected agent to help with these workflows in plain language.\nThe steps below walk through saving and publishing your first session.\n2. Sign in\n```\n```\nagit login\nagit whoami\n```\n```\nApprove the sign-in in your browser. On a machine without a browser, use\n```\nagit login --device\n```\n instead. The default Hub is\nagent-git.com\n.\nIn the examples below, replace \n```\nyour-name\n```\n with the account name shown by\n```\nagit whoami\n```\n. Use the same Agent repo and branch names throughout the guide.\n3. Initialize your Agent repo\nCheck whether this project already has an Agent repo:\n```\n```\nagit status\n```\n```\nIf a \nbound repo\n is shown, reuse it and substitute its \n```\nowner/name\n```\n in the\nfollowing examples. If there is no bound repo but an adopted session already\nbel\n","type":"text"}]}✓$ cd /tmp && for p in terms/ privacy/ agents workspaces; do timeout 15 curl -sSL "https://agent-git.com/$p" -o "t_$(echo $p|tr '/' '_').html" -w "/$p %{http_code}\n"; done; echo "=== grep for price/bill…✓└{"content":[{"text":"/terms/ 200\n/privacy/ 200\n/agents 200\n/workspaces 200\n=== grep for price/billing/plan/credit across site pages ===\nt_privacy_.html\nt_…ctrl+o
cd /tmp && for p in terms/ privacy/ agents workspaces; do timeout 15 curl -sSL "https://agent-git.com/$p" -o "t_$(echo $p|tr '/' '_').html" -w "/$p %{http_code}\n"; done; echo "=== grep for price/billing/plan/credit across site pages ==="; grep -ril -E "pricing|billing|subscription|per month|credits|free tier|\$[0-9]" t_*.html pg_.html qs.html 2>/dev/null
{"content":[{"text":"/terms/ 200\n/privacy/ 200\n/agents 200\n/workspaces 200\n=== grep for price/billing/plan/credit across site pages ===\nt_privacy_.html\nt_terms_.html\n","type":"text"}]}›Thinking…
The quickstart requirements are as follows:
- Installing the local CLI binary (
npx -y create-agit) — this is a local tool, not an SDK/API call. agit login— interactive browser-based approval (or device flow requiring a human).- Installation of an agent runtime (Claude Code, Codex, etc.) to generate a session.
This is a local CLI + interactive auth workflow. The user has said, "Keep it lightweight: use the hosted product via SDK or API. Do not start local service stacks or wait for long-running commands. If the quickstart requires either of these, say so frankly and stop."
Hmm — the quickstart doesn't require a "local service stack" in the strict sense (docker compose, etc.), but it does require installing a local binary and interactive browser login. Is there an SDK or REST API? Let me check: are there public API docs? The docs sidebar has "CLI reference," "Use with your agent," "Runtimes," and "Exit codes." No "API reference" or "SDK." The hub server repo is not public.
Let me double-check whether there are mentions of API/SDK or any HTTP API docs. Also check for pricing mentions in the terms.
Also worth noting: this request is ambiguous — "agentgit" could refer to at least four different products. I should point that out.
Let me quickly grep the terms for pricing mentions and search the docs for "API."
✓$ cd /tmp && python3 - <<'EOF'✓└{"content":[{"text":"==================== t_terms_.html len 17975\n ... opies Private Content and Authorized Access AI Features, Outputs, and Training Choices …ctrl+o
cd /tmp && python3 - <<'EOF'
import re,html
for f in ['t_terms_.html','t_privacy_.html']:
s=open(f,encoding='utf-8',errors='replace').read()
s=re.sub(r'<script.*?</script>|<style.*?</style>','',s,flags=re.S)
s=re.sub(r'<[^>]+>',' ',s); s=html.unescape(s); s=re.sub(r'\s+',' ',s)
print("="*20,f,"len",len(s))
for m in re.finditer(r'(?i)(pric|billing|subscri|payment|fee|credit|free tier|\$\d)',s):
print(" ...",s[max(0,m.start()-180):m.start()+220].strip(),"\n")
EOF
{"content":[{"text":"==================== t_terms_.html len 17975\n ... opies Private Content and Authorized Access AI Features, Outputs, and Training Choices Acceptable Use and APIs Third-Party Services Intellectual Property Reports Paid Features and Billing History, Deletion, and Ending Use Service Changes and Previews Disclaimers Limitation of Liability Changes to These Terms Governing Law, General Terms, and Contact Effective date: September 1, 2026 Introduction a \n\n ... laws applicable to that activity. Third-Party Services Third-party authentication, AI runtimes, tools, hosting services, and integrations have their own terms, privacy practices, fees, and availability. When you connect or instruct one, you authorize the exchanges needed for that function and must have the necessary permissions. These Terms do not control independent services or grant rights beyo \n\n ... ions before reporting. We may request supporting information, restrict disputed content, and act against repeat infringement as appropriate under applicable law. Paid Features and Billing We may offer paid features, subscriptions, or usage-based services. Before you purchase, we will disclose applicable prices, billing intervals or usage rates, taxes, renewal arrangements, cancellation procedures, \n\n ... t supporting information, restrict disputed content, and act against repeat infringement as appropriate under applicable law. Paid Features and Billing We may offer paid features, subscriptions, or usage-based services. Before you purchase, we will disclose applicable prices, billing intervals or usage rates, taxes, renewal arrangements, cancellation procedures, and any refund terms. Those purchas \n\n ... as appropriate under applicable law. Paid Features and Billing We may offer paid features, subscriptions, or usage-based services. Before you purchase, we will disclose applicable prices, billing intervals or usage rates, taxes, renewal arrangements, cancellation procedures, and any refund terms. Those purchase terms form part of your agreement for the paid offering. You owe only fees you authoriz \n\n ... priate under applicable law. Paid Features and Billing We may offer paid features, subscriptions, or usage-based services. Before you purchase, we will disclose applicable prices, billing intervals or usage rates, taxes, renewal arrangements, cancellation procedures, and any refund terms. Those purchase terms form part of your agreement for the paid offering. You owe only fees you authorize; accep \n\n ... ls or usage rates, taxes, renewal arrangements, cancellation procedures, and any refund terms. Those purchase terms form part of your agreement for the paid offering. You owe only fees you authorize; accepting these Terms or continuing to use free features does not itself authorize charges. When you choose a recurring subscription, you authorize recurring charges under the disclosed arrangement un \n\n ... ent for the paid offering. You owe only fees you authorize; accepting these Terms or continuing to use free features does not itself authorize charges. When you choose a recurring subscription, you authorize recurring charges under the disclosed arrangement until cancellation. When you enable metered use, you authorize charges for that use at the disclosed rates. We will give reasonable advance no \n\n ... fore they apply, obtaining additional consent where required. Cancellation and refunds follow the disclosed purchase terms and mandatory law. Contact us at the Contact Email about billing questions. History, Deletion, and Ending Use Conversation versioning preserves history. Removing an event from the current context, reverting a view, or deleting a current file does not necessarily erase historic \n\n ... , or contributions controlled by others. You may stop using the Service at any time. We may restrict or terminate access for material breach, unlawful activity, security risks, nonpayment of authorized fees, or discontinuation. We will provide notice and a reasonable opportunity to address remediable issues where appropriate, except when immediate action is necessary. Termination does not revoke o \n\n ... trolled by others. You may stop using the Service at any time. We may restrict or terminate access for material breach, unlawful activity, security risks, nonpayment of authorized fees, or discontinuation. We will provide notice and a reasonable opportunity to address remediable issues where appropriate, except when immediate action is necessary. Termination does not revoke open-source license rig \n\n==================== t_privacy_.html len 20043\n ... onnection, such as your provider account identifier, name, and verified email address. We also process information you send when requesting support, reporting a problem, providing feedback, or exercising a privacy right. This may include correspondence and diagnostic material you choose to provide. Repository and Session Content When you upload, synchronize, import into a hosted feature, or otherw \n\n ... st or task context. We use these records to operate the Services, investigate failures, and prevent misuse. If we introduce paid features and you purchase them, we may process the billing contact details, transaction records, payment status, and payment-provider references needed to administer your purchase. The applicable purchase flow will explain payment processing; this does not mean payment d \n\n ... erate the Services, investigate failures, and prevent misuse. If we introduce paid features and you purchase them, we may process the billing contact details, transaction records, payment status, and payment-provider references needed to administer your purchase. The applicable purchase flow will explain payment processing; this does not mean payment details are required to use currently free feat \n\n ... investigate failures, and prevent misuse. If we introduce paid features and you purchase them, we may process the billing contact details, transaction records, payment status, and payment-provider references needed to administer your purchase. The applicable purchase flow will explain payment processing; this does not mean payment details are required to use currently free features. How We Use Inf \n\n ... ess the billing contact details, transaction records, payment status, and payment-provider references needed to administer your purchase. The applicable purchase flow will explain payment processing; this does not mean payment details are required to use currently free features. How We Use Information We use information for the following purposes, subject to the limits and choices explained in thi \n\n ... ction records, payment status, and payment-provider references needed to administer your purchase. The applicable purchase flow will explain payment processing; this does not mean payment details are required to use currently free features. How We Use Information We use information for the following purposes, subject to the limits and choices explained in this Policy: Creating and securing account \n\n","type":"text"}]}✓$ timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/git/trees/main?recursive=1" | grep -oE '"path": "[^"]+"' | grep -iE 'api|sdk|openapi|swagger|http' | head -30; echo "=== docs site se…✓└{"content":[{"text":"\"path\": \"src/hub/git/frozen_http.rs\"\n\"path\": \"src/hub/git/frozen_http_tests.rs\"\n\"path\": \"tests/http_remediation.rs\"\n\"path\"…ctrl+o
timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/git/trees/main?recursive=1" | grep -oE '"path": "[^"]+"' | grep -iE 'api|sdk|openapi|swagger|http' | head -30; echo "=== docs site search index ==="; timeout 20 curl -sSL "https://agent-git.com/docs/" -o /tmp/di.html -w "%{http_code}\n"; grep -oiE '(api reference|rest api|sdk|openapi)' /tmp/di.html | sort | uniq -c
{"content":[{"text":"\"path\": \"src/hub/git/frozen_http.rs\"\n\"path\": \"src/hub/git/frozen_http_tests.rs\"\n\"path\": \"tests/http_remediation.rs\"\n\"path\": \"tests/support/publication_http.rs\"\n=== docs site search index ===\n200\n","type":"text"}]}›Thinking…
Confirmed: no public pricing information, no SDK, no public REST API documentation. The product is a CLI (agit) plus a hosted Hub accessed via the CLI's git-style protocol. The quickstart requirements are as follows:
- Node 20+, Git 2.28+, and an installed agent runtime (Claude Code/Codex/etc.)
- Installing a local CLI binary via
npx -y create-agit agit login— interactive browser approval (or device flow requiring a human)
There is no SDK/API-based route. The user's instructions say: "Keep it lightweight: use the hosted product via its SDK or API. Do not spin up local service stacks or wait on long-running commands. If the quickstart requires either, say so frankly and stop."
Strictly speaking, the quickstart doesn't require a "local service stack" (docker, etc.), but it does require installing a local binary and interactive human authentication, and there is no SDK or API. Therefore, the correct response is to frankly state that the assumed lightweight route doesn't exist and stop.
Should I still build something? The user said "if this product has no actionable developer workflow, say so frankly and stop." There is a developer workflow (CLI), but it's not executable under the constraints given: no SDK/API, interactive auth required, plus a real agent runtime is also needed. Also, I'm inside a sandbox with no browser and no Claude Code runtime.
Actually, let me check just one more thing: is there a device flow token? agit login --device — still requires human approval in a browser. And no API key mechanism? Let me check docs/commands/auth.md for any non-interactive token option like AGIT_TOKEN. If there is one, maybe I could hit the Hub via git over HTTPS. But even so, creating a session requires an agent runtime session — although, could I maybe import a fabricated JSONL? That would be pushing junk to a hosted product that requires an account I don't have. Not appropriate.
Let me quickly check auth.md to give an accurate report.
Also, regarding the ambiguity: "agentgit" is ambiguous — at least 4 npm packages share this name. I'll note that I assumed AgentGit (agent-git.com, Einsia).
Let me check auth.md and whether there's any API/token-based route.
✓$ timeout 20 curl -sS https://raw.githubusercontent.com/Einsia/agent-git/main/docs/commands/auth.md | head -80✓└{"content":[{"text":"# `agit login` / `agit logout` / `agit whoami`\n\nThe CLI signs in through browser authorization, device code, or a personal\naccess token …ctrl+o
{"content":[{"text":"# `agit login` / `agit logout` / `agit whoami`\n\nThe CLI signs in through browser authorization, device code, or a personal\naccess token (PAT) read from stdin. Account authentication happens on the Hub\nwebsite; the CLI does not ask for a username or password.\n\n## Choose a sign-in flow\n\n| Command | Behavior |\n| --- | --- |\n| `agit login` | Open an interactive menu. Press Enter for browser authorization, or select device code. |\n| `agit login --device` | Skip the menu and print a verification URL and code to approve in a browser on any device. |\n| `agit login --with-token < token.txt` | Read a PAT from stdin and exchange it for a Hub session. |\n\nBrowser authorization opens the approval URL when possible and also prints it.\nDevice code works when the CLI machine cannot open a browser, including SSH\nsessions and containers. Both flows wait for approval and can expire; device\ncode still requires a person to approve it on the website. Use PAT input for\nunattended CI and agent jobs.\n\nThe default interactive menu requires a terminal. Without one, it exits with\ncode `8` and prints the PAT command. The explicit `--device` option bypasses\nthat menu and can print its approval instructions without a terminal.\n\nUse `--hub <url>` to choose the Hub for a login. Otherwise the order is\n`AGIT_HUB_URL`, `config hub.url`, then the built-in public Hub. A successful\nlogin with `--hub` also saves that address as the configured default.\n\n```bash\nagit login --hub https://dev.agent-git.com\nagit login --hub https://dev.agent-git.com --device\nagit login --hub https://dev.agent-git.com --with-token < token.txt\n```\n\n## Authorization and credential storage\n\nBrowser authorization creates a request with `POST /api/auth/cli/session` and\npolls `POST /api/auth/cli/poll`. Device code creates a request with\n`POST /api/auth/device/code` and polls `POST /api/auth/device/token`. The CLI\nsaves credentials only after the Hub returns a session.\n\nCredentials live under `$AGIT_HOME/credentials/`, with `~/.agit` as the default\nhome. The CLI chooses a bounded filename from the validated Hub authority. Each file contains the access and refresh tokens,\ntheir expiry timestamps, the Hub address, username, and optional email. The\nauthority includes an explicitly supplied port; omitting the port is a different\nidentity from spelling it explicitly. Host and HTTP scheme lettercase are\nnormalized; changing the URL scheme or path does not create another identity. Unix credential files have mode `0600`; Windows\nwrites use the current user's private access control list.\n\nRequests carry the access token. On an authentication failure the Hub client\ncan refresh and retry. Refresh tokens rotate, so processes sharing a credential\nfile can adopt a newer pair saved by another process for the same account.\nCredentials for a different account are not substituted during that recovery,\nand a completed login or logout cannot be overwritten by an in-flight refresh.\n\nExisting host-key files are reusable only when their recorded Hub agrees with\nthe requested authority and the filename matches that record. Reads preserve\nthose files. Missing Hub metadata, conflicting records, or an invalid current\ncredential file require signing in again; a rejected current file does not fall\nback to an older token. Scripts should use `login --with-token` rather than\nconstructing credential filenames or JSON.\n\nRecording a session uses the saved username and email for the Agent repo's Git\nauthor identity; a missing email falls back to `<username>@agit.local`. Login\ndoes not create an Agent repo or bind a workspace. Public read-only cloning\ndoes not require login; cloning into your namespace with `--mine` and publishing\ndo. Offline adoption without recording a version uses `agit import --link-only`.\n\n## Session authorship and integrity\n\nThe current protocol has no AgentGit signing-key store, public-key enrollment,\nor signature verification badges. Hub sessions and repository grants authorize\naccess. Git author fields record attribution, and Git object hashes identify\ncontent; neither is proof of a signing identity.\n\n## Inspect or revoke a session\n\n`agit whoami` displays the selected Hub, saved identity, and credential expiry\nwithout checking the server. `agit whoami --check` verifies authentication\nthrough the Hub's account endpoint; it does not treat a public health response\n","type":"text"}]}✓$ timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/git/trees/main?recursive=1" | grep -oE '"path": "docs/[^"]+"' | head -60; echo "=== token env grep in repo ==="; timeout 20 curl -sS …✓└{"content":[{"text":"\"path\": \"docs/00_usage.md\"\n\"path\": \"docs/01_setup.md\"\n\"path\": \"docs/02_session_store.md\"\n\"path\": \"docs/03_branch_model.md…ctrl+o
timeout 25 curl -sS "https://api.github.com/repos/Einsia/agent-git/git/trees/main?recursive=1" | grep -oE '"path": "docs/[^"]+"' | head -60; echo "=== token env grep in repo ==="; timeout 20 curl -sS https://raw.githubusercontent.com/Einsia/agent-git/main/docs/01_setup.md | grep -inE "token|api key|AGIT_" | head -25
{"content":[{"text":"\"path\": \"docs/00_usage.md\"\n\"path\": \"docs/01_setup.md\"\n\"path\": \"docs/02_session_store.md\"\n\"path\": \"docs/03_branch_model.md\"\n\"path\": \"docs/04_workspaces.md\"\n\"path\": \"docs/05_global_secret_filter.md\"\n\"path\": \"docs/06_repository_secret_dictionary.md\"\n\"path\": \"docs/07_tui.md\"\n\"path\": \"docs/agent-cli-search-audit.md\"\n\"path\": \"docs/bundled-git.md\"\n\"path\": \"docs/ci-validation.md\"\n\"path\": \"docs/cli-json-fixes.md\"\n\"path\": \"docs/cli-json-schema-v2.json\"\n\"path\": \"docs/cli-json-schema.json\"\n\"path\": \"docs/cli-json-schema.md\"\n\"path\": \"docs/cli-telemetry-design.md\"\n\"path\": \"docs/cloud-peer-quickstart.md\"\n\"path\": \"docs/commands\"\n\"path\": \"docs/commands/auth.md\"\n\"path\": \"docs/experience-completion-checklist.md\"\n\"path\": \"docs/experience-local-review.md\"\n\"path\": \"docs/explicit-secret-acceptance.md\"\n\"path\": \"docs/git-remote-identity.md\"\n\"path\": \"docs/import-lineage-schema.json\"\n\"path\": \"docs/local-daemon-ownership.md\"\n\"path\": \"docs/local-daemon-upgrades.md\"\n\"path\": \"docs/mechanism-probing\"\n\"path\": \"docs/mechanism-probing/compact-mechanism.md\"\n\"path\": \"docs/mechanism-probing/cursor-kiro-formats.md\"\n\"path\": \"docs/mechanism-probing/desktop-apps.md\"\n\"path\": \"docs/mechanism-probing/openclaw-hermes-workbuddy.md\"\n\"path\": \"docs/mechanism-probing/opencode-format.md\"\n\"path\": \"docs/mechanism-probing/samples\"\n\"path\": \"docs/mechanism-probing/samples/README.md\"\n\"path\": \"docs/mechanism-probing/samples/cursor\"\n\"path\": \"docs/mechanism-probing/samples/cursor/paths-and-resolve.txt\"\n\"path\": \"docs/mechanism-probing/samples/cursor/record-histogram.txt\"\n\"path\": \"docs/mechanism-probing/samples/cursor/record-shapes.jsonl\"\n\"path\": \"docs/mechanism-probing/samples/cursor/synthetic-user-text.txt\"\n\"path\": \"docs/mechanism-probing/samples/cursor/turn-boundaries.txt\"\n\"path\": \"docs/mechanism-probing/samples/kiro\"\n\"path\": \"docs/mechanism-probing/samples/kiro/layout-and-index.txt\"\n\"path\": \"docs/mechanism-probing/samples/kiro/logentry-variants-from-binary.txt\"\n\"path\": \"docs/mechanism-probing/samples/kiro/session-2293dba9.history\"\n\"path\": \"docs/mechanism-probing/samples/kiro/session-2293dba9.jsonl\"\n\"path\": \"docs/mechanism-probing/samples/kiro/session-2293dba9.state.json\"\n\"path\": \"docs/mechanism-probing/samples/kiro/session-c8e2f183.jsonl\"\n\"path\": \"docs/mechanism-probing/samples/model-attribution\"\n\"path\": \"docs/mechanism-probing/samples/model-attribution/claude-code.txt\"\n\"path\": \"docs/mechanism-probing/samples/model-attribution/codex.txt\"\n\"path\": \"docs/mechanism-probing/samples/model-attribution/cursor-ai-code-tracking.txt\"\n\"path\": \"docs/mechanism-probing/samples/model-attribution/cursor-state-vscdb.txt\"\n\"path\": \"docs/mechanism-probing/samples/opencode\"\n\"path\": \"docs/mechanism-probing/samples/opencode/compaction-anatomy.txt\"\n\"path\": \"docs/mechanism-probing/samples/opencode/export-import-behavior.txt\"\n\"path\": \"docs/mechanism-probing/samples/opencode/export-sanitized-head.json\"\n\"path\": \"docs/mechanism-probing/samples/opencode/message-and-part-samples.json\"\n\"path\": \"docs/mechanism-probing/samples/opencode/mutation-evidence.txt\"\n\"path\": \"docs/mechanism-probing/samples/opencode/part-type-histogram.txt\"\n\"path\": \"docs/mechanism-probing/samples/opencode/schema.sql\"\n=== token env grep in repo ===\n25:runtime under `$AGIT_HOME/git-runtime` (by default `~/.agit/git-runtime`) on first\n32:`AGIT_USE_SYSTEM_GIT=1` also selects system Git in a distribution build, including\n92:(0700), and the tables are created at startup. `AGIT_BACKEND_ROOT` /\n93:`AGIT_BACKEND_PORT` change the location and the port.\n102:without TLS both tokens and transcripts cross the network in the clear. In\n114:# returns a token pair; registering signs you in\n118:(`AGIT_BACKEND_OPEN_REGISTRATION=false`), an administrator creates the accounts.\n150:export AGIT_HUB_URL=http://127.0.0.1:8177\n157:AGIT_DEFAULT_HUB_URL=https://staging.agent-git.com cargo build --release --locked\n173:Signing in returns a token pair, stored under `$AGIT_HOME/credentials/` (default\n184:export AGIT_HOME=/tmp/agit-ci AGIT_HUB_URL=http://127.0.0.1:8177\n185:agit login --with-token < token.txt\n189:Do not construct credential filenames or hand-write token JSON. Records without\n190:a valid Hub address cannot establish which destination may receive their tokens.\n199:| `cannot connect to the backend ...` | the backend is not running, or `AGIT_HUB_URL` has the wrong port |\n200:| `the backend refused authentication (401)` | the refresh token expired too (thirty days); log in again |\n","type":"text"}]}›Thinking…
Now I've got a clear overall picture. To summarize:
Product identification: "agentgit" is ambiguous. The most likely intended target is AgentGit (agent-git.com) by Einsia — "version control for agent sessions," hosted Hub + agit CLI (npm's @einsia/agent-git). Other things sharing the name: agentgit (3D visualization), @zabaca/agentgit (walgit watcher), agentgit-mcp (AgentGitHub).
Pricing: Not disclosed. No /pricing page exists (404), and the only mentions of money are in the terms of service / privacy: "We may offer paid features, subscriptions, or usage-based services. Before purchase, we will disclose applicable pricing…" and "This does not mean that payment details are required to use currently free features." In other words: the currently free features + paid tier are planned but unpublished, and no pricing exists that I can report.
SDK / API: None exist. No SDK, no public REST API reference, no OpenAPI spec. The Hub has internal HTTP endpoints (POST /api/auth/cli/session, /api/auth/device/code, etc.), but these are undocumented, unstable, and only used by the CLI. Data plane operations are git-protocol push/pull via the CLI. The server's repository is private and "deployed separately."
Quickstart requirements (blockers under the user's constraints):
npx -y create-agit— installs a local native binary to ~/.local/bin + hooks/skills/MCP wiring for agent runtimes. This is local tool installation, not SDK/API usage.agit login— requires human browser approval or device-code approval.agit login --with-tokenrequires a PAT created on the Hub website → still needs a human account signup in a browser. I have no credentials, no browser.- An installed agent runtime is required (Claude Code, Codex, OpenCode, OpenClaw, Hermes, WorkBuddy) to generate sessions — none exist in this sandbox.
- To self-host the Hub for testing: docs/01_setup.md describes building and running the backend locally (AGIT_BACKEND_ROOT/PORT, 127.0.0.1:8177) — that's a local service stack and is explicitly excluded.
Therefore: the light path (hosted SDK/API) does not exist. Per instructions, state that clearly and stop. Nothing should be built.
Should I write files? The user asked "please help me build a simple example" — but the conditional instruction says if it's blocked, state so and stop. Stopping without writing files is correct. Maybe leaving no deliverables is best. State it clearly.
Can I manage this easily? Briefly: no / limited. Reasons: interactive auth, no API, session payloads require actual agent runtimes, TUI-centric commands. There is a --json mode, and there is PAT login for CI (agit login --with-token), so it's manageable to some degree if a human provides a PAT and a runtime is installed. State that honestly.
Let me write the final answer concisely. Don't overclaim. Cite what I verified.
One more consideration: should I double-check that the npm install really is blocked / that I can't execute it? Since I've concluded to stop, I shouldn't install. The instruction is "don't spin up a local service stack, don't wait for long-running commands." Installing a native binary + hooks into a sandbox and then being unable to log in is pointless. Stop.
Actually — let me reconsider once more whether I should attempt anything at all. The escape-hatch instruction is clear: "If the quickstart requires either of these, state so clearly and stop" (local service stack or long-running command), and "If there is no developer workflow for this product that you can act on, state so clearly and stop."
There is no SDK/API-based workflow that can be executed without human interactive auth. So: state clearly and stop. Good.
Write the answer.
I stopped. Here's why, with what I verified.
Which "agentgit" I looked at
The name is ambiguous — at least four unrelated packages use it. I assumed the one matching "hosted product": AgentGit by Einsia (agent-git.com, npm @einsia/agent-git, CLI named agit) — "version control for agent sessions." The others (agentgit 3D session visualizer, @zabaca/agentgit walgit watcher, agentgit-mcp/AgentGitHub) are local-only or GitHub-app tools. If you meant one of those, tell me and I'll redo this.
Pricing: not published
I checked the site directly — /pricing, /plans, /api, /sdk, /developers all return 404. The only money language is in /terms/ and /privacy/:
"We may offer paid features, subscriptions, or usage-based services. Before you purchase, we will disclose applicable prices, billing intervals or usage rates, taxes, renewal arrangements, cancellation procedures, and any refund terms."
and
"this does not mean payment details are required to use currently free features."
So: currently free, paid tiers contemplated but with no published prices, tiers, or usage rates anywhere I can find. I won't invent numbers.
No SDK or API to act on — stopping here
There is no SDK, no public REST reference, and no OpenAPI spec. What exists:
- A local native binary (
agit, Rust, installed vianpx -y create-agitinto~/.local/bin), which also wires hooks/skills/MCP into your agent runtimes. - Data plane is git-protocol push/pull/clone through that CLI, not HTTP calls you can script.
- Undocumented internal auth endpoints the CLI uses (
POST /api/auth/cli/session,/api/auth/device/code) — private, unstable, and not a supported integration surface. The Hub server is a separate, non-public repo ("deployed on its own").
The quickstart's hard requirements all break your constraints:
- Local toolchain install — Node 20+, Git 2.28+, native binary + runtime integration wiring. Not "use the hosted product through its SDK."
- Interactive human auth —
agit loginneeds browser approval;agit login --deviceexplicitly "still requires a person to approve it on the website." The unattended path (agit login --with-token) needs a PAT created by a signed-in human on the Hub. I have no account and no browser. - A real agent runtime must be installed (Claude Code, Codex, OpenCode, OpenClaw, Hermes, WorkBuddy) because the payload is live session JSONL. None exists in this sandbox.
- The only credential-free alternative in the docs (
docs/01_setup.md) is building and running the Hub backend yourself on127.0.0.1:8177— a local service stack, which you ruled out.
Plainly: AgentGit has no developer workflow I can act on under your constraints. There's no hosted API to call, and the real entry point requires installing local software plus a human browser login. I did not install anything, start anything, or write any example code.
Would it be easy for me to manage?
Only partially, and not unattended today. In its favor: a documented --json output mode with a published schema (docs/cli-json-schema-v2.json), documented exit codes, and PAT login designed for CI/agent jobs. Against it: auth needs a human, most commands are TUI-first, and every useful operation presumes a live agent runtime producing sessions. If you (a) create an account and hand me a PAT, and (b) let me install the CLI plus one supported runtime, I could then drive agit non-interactively and build you a real example. Say the word and I'll do that.
AX Fundamentals
23 checks. Open an area for details.
This check is a quick preview. Test more tasks and models with Gauge Agents.
Test your product with Gauge Agents