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

Dimensionsrc.landGitHub
Code hostingGit over SSH and HTTPS. Full history, branches, tags.Git over SSH and HTTPS. Full history, branches, tags.
Code indexingKnowledge 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 accessReal 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 logAppend-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 modelNamespace 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 projectsIssues at any namespace level. Linked to project graph. Milestones and boards built in.Issues and Projects (kanban/table). Rich ecosystem of integrations.
WikiKG-backed wiki pages. API reference blocks refresh from the graph on push.Markdown wiki per repo. No automatic freshness tied to code.
Self-hostingSingle Go binary or Helm chart. Air-gap and FIPS build available. No phone-home.GitHub Enterprise Server (GHES). Requires significant infrastructure.
PricingFree / Pro / Enterprise tiers. Agent actions metered separately.Free / Team / Enterprise. Copilot billed per seat on top.

Migration path

  1. 01

    Create a namespace

    Sign up and create a user or org namespace. Your slug becomes your remote hostname segment.

  2. 02

    Import your repos

    Paste a GitHub HTTPS or SSH remote URL into the import wizard. Full history copies over.

  3. 03

    Indexing runs on arrival

    The knowledge graph builds automatically from the imported history. No manual trigger needed.

  4. 04

    Update remotes

    Run `git remote set-url origin` with the src.land URL. Push workflow is unchanged.

  5. 05

    Mint agent tokens

    Create bearer tokens scoped to specific repos and action types for your CI and AI agents.

  6. 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.