GitHub is one of the best products of the last 20 years. We host puppyone there. We're not trying to replace it.
What we are saying is: the moment you ask "where do my agents read and write everything that isn't application code?", the answer is not GitHub. It's a sentence we've watched a lot of teams discover the hard way.
GitHub was built around a specific dance: a human writes code, opens a PR, another human reviews, CI runs, you merge. Every product surface — protected branches, required reviews, status checks, branch protection — exists to make that human-review-then-merge dance safe.
Agents don't dance like that. They write 200 files in 90 seconds. They make 14 attempts at the same plan before they get it right. Most of those writes don't deserve a PR; some of them deserve to be silently overwritten; a few deserve to be branched. Trying to put all of that into GitHub creates either an unreviewable wall of PRs or a pile of unprotected commits to main. Neither is what GitHub is for.
That's what puppyone is built for: a Git-shaped substrate where agents are first-class writers, history is automatic, and humans review only the slices that matter.
| Dimension | GitHub | puppyone |
|---|---|---|
| Primary user | Humans writing and reviewing code | Agents reading and writing context |
| Atomic unit | Repo + commit + PR | Workspace + commit (no PR ceremony required) |
| Write model | Author commit → push → open PR → review → merge | Agent writes → automatic commit → continue (review optional, after the fact) |
| Identity | Per-user (GitHub account) | Per-agent (Access Point with explicit identity) |
| Permissions | Repo-level / org-level / branch protection | Per-agent path scopes (/research read, /output write, etc.) |
| What it stores well | Code, build artifacts, releases | Markdown, JSON, CSV, generated reports, scratch state, ingested SaaS data |
| Native interface | git CLI, web, GitHub API | Bash, SSH, MCP server, REST API, sandbox mount |
| Diff / history | Per-file diffs, commit log, blame | Per-file diffs, commit log, per-agent provenance, instant rollback |
| SaaS ingestion | None (it's a Git host) | Built-in connectors: Notion, Slack, Gmail, Postgres, etc. |
| Self-hosted | Yes (GitHub Enterprise) | Yes (open source, Docker) |
| Best at | Code, releases, human review | Agent context, multi-agent collaboration, SaaS-shaped knowledge |
Use GitHub for the job it's brilliant at: code that humans review before it ships.
We do not replace any of that. puppyone has no PR ceremony. We have no concept of CODEOWNERS. We're not a code host.
Use puppyone when the writer is an agent and the content isn't application code:
main branch.If you've been creating private GitHub repos for "agent stuff" and watching them turn into a graveyard of unreviewable commits, you're rebuilding the wrong primitive. puppyone is what those repos wanted to be.
Almost every serious team running agents alongside engineering ends up here:
The clean rule: code goes through PRs in GitHub; everything else lives as automatically-versioned files in puppyone. The boundary is when something needs human review before it ships.
People try. Three things go wrong predictably:
/specs but not /finance" inside one repo. You either give everyone everything, or you split into a dozen repos with their own auth — and then your agent has to juggle credentials and API rate limits.git add / git commit / git push is either fragile (one network blip kills the chain) or noisy (your main is a thousand "wip" commits a day). puppyone makes commit-on-write the default at the storage layer, with no glue code.You can absolutely use a Git repo as your "agent context store" for a couple of weeks. It tends to break around the third agent or the second integration.
Per-product agent memory is great inside that product. It is not a shared substrate.
The problem you hit:
puppyone sits underneath all of them. The same workspace is exposed to Cursor (via MCP), to Claude Code (via MCP), to n8n (via REST), to your custom code (via Bash/SSH), to anything that speaks files. Each tool keeps its own product-level memory; puppyone is the cross-product, cross-agent layer that makes "shared context" actually mean shared.
There is no migration. GitHub doesn't move.
/repos/your-app/, /specs. Researcher reads /research, writes /research-notes. They get exactly the slice they need.After a month, the pattern is: GitHub holds reviewable code; puppyone holds the rest of the universe; agents see both, and your main branch is no longer drowning in "wip from agent run #2,481".
Does puppyone replace GitHub? No. We don't host your code, run your CI, or replace your PR review. GitHub does that, and brilliantly. We hold the agent-readable, agent-writable context layer that doesn't belong inside a code repo.
Is puppyone built on Git?
We use Git-shaped ideas (commits, diffs, branches, rollback) at the storage layer. We are not a Git host and we don't expose git semantics 1:1. The point is to give agents Git-style guarantees without making them perform Git ceremony for every write.
Can puppyone open PRs back to GitHub? Yes — the GitHub connector supports two-way operations, including opening PRs from agent-staged changes. The review gate stays in GitHub.
Should I put AGENTS.md in puppyone or GitHub? GitHub, next to the code it describes. puppyone reads it from there. AGENTS.md is documentation about the repo; it belongs with the repo.
Why not just give every agent its own GitHub repo? You can. You'll spend a lot of time managing repo creation, deletion, permissions, tokens, rate limits, and per-agent isolation. puppyone gives you all of that as a single workspace with per-agent Access Points — no repo sprawl.
GitHub versions code that humans review. puppyone versions context that agents read and write. They use the same Git-shaped ideas for very different jobs. Keep code in GitHub. Put everything else agents touch in puppyone. Wire them together at the seams that matter.
Stop turning private GitHub repos into agent graveyards. Give them a real workspace.Get started