src.land vs GitHub.
Same Git workflow. src.land adds a queryable symbol graph rebuilt on every push, a real MCP server for agent access, and an append-only audit log that attributes every push and agent read.
What stays familiar
Git over SSH and HTTPS, pull request workflow, issues, code review with threads, CI/CD webhooks, and a web UI you already know how to navigate. Remote URLs change; the push workflow does not.
What changes
Every push now rebuilds the knowledge graph. Agents get a real MCP server with scoped tokens, not a user impersonation hack. Every human push and agent read lands one audit row attributed to the exact actor and namespace.
Feature comparison
| Dimension | src.land | GitHub |
|---|---|---|
| Code hosting | Git over SSH and HTTPS. Full history, branches, tags. | Git over SSH and HTTPS. Full history, branches, tags. |
| Code indexing | Knowledge graph rebuilt on every push: symbols, callers, cross-language edges, and impact analysis. | Search is text-based (grep). No built-in symbol graph. Code Search adds regex and some symbol lookup. |
| AI / agent access | Real MCP protocol server. Scoped bearer tokens, one audit row per agent call. | GitHub Copilot via extension. No standard MCP server. Agents authenticate as users or GitHub Apps. |
| Audit log | Append-only row per action (push, read, agent call). Queryable by actor and namespace. | Audit log available on Enterprise plans. Covers org events; not per-read agent attribution. |
| Permission model | Namespace tree (org, project, repo). Agent tokens scoped to exact repos and action types. | Org/repo permissions plus fine-grained PATs (beta). No first-class agent scope. |
| Issues and projects | Issues at any namespace level. Linked to project graph. Milestones and boards built in. | Issues and Projects (kanban/table). Rich ecosystem of integrations. |
| Wiki | KG-backed wiki pages. API reference blocks refresh from the graph on push. | Markdown wiki per repo. No automatic freshness tied to code. |
| Self-hosting | Single Go binary or Helm chart. Air-gap and FIPS build available. No phone-home. | GitHub Enterprise Server (GHES). Requires significant infrastructure. |
| Pricing | Free / Pro / Enterprise tiers. Agent actions metered separately. | Free / Team / Enterprise. Copilot billed per seat on top. |
Migration path
- 01
Create a namespace
Sign up and create a user or org namespace. Your slug becomes your remote hostname segment.
- 02
Import your repos
Paste a GitHub HTTPS or SSH remote URL into the import wizard. Full history copies over.
- 03
Indexing runs on arrival
The knowledge graph builds automatically from the imported history. No manual trigger needed.
- 04
Update remotes
Run `git remote set-url origin` with the src.land URL. Push workflow is unchanged.
- 05
Mint agent tokens
Create bearer tokens scoped to specific repos and action types for your CI and AI agents.
- 06
Set up mirroring (optional)
Keep the GitHub remote as a push mirror so both hosts stay in sync during the transition.
The citadel-cli mirrors and manages remotes. A continuous mirror lets you keep GitHub as a backup during the transition. History is preserved in full; no rebase or squash required.
Try it yourself
One repo is enough to evaluate.
Import from any git remote. History and indexing arrive together.