src.land vs GitLab.
Lighter footprint, same Git workflow. src.land replaces a multi-service cluster with a single binary and adds a knowledge graph and MCP server that GitLab does not ship by default.
What stays familiar
Git hosting, pull requests (called merge requests in GitLab), issues, code review threads, and a web UI for browsing history. Push workflow over SSH and HTTPS is identical. Issues and boards are present in both.
What changes
No bundled CI/CD. src.land uses signed webhooks to external runners. You gain a queryable symbol graph rebuilt on every push, a real MCP server with scoped tokens per agent, and a per-action audit log that GitLab only exposes on Premium and above.
Feature comparison
| Dimension | src.land | GitLab |
|---|---|---|
| Footprint | One Go binary plus a Postgres database. Air-gap and FIPS build available. | Multi-service cluster (Gitaly, Workhorse, Sidekiq, Redis, Elasticsearch, and more). High resource floor. |
| Code indexing | Knowledge graph rebuilt on push. Symbols, callers, and cross-language edges queryable via MCP. | Basic code search. Advanced Search (Elasticsearch) is an optional add-on. No native symbol graph. |
| AI / agent access | MCP protocol server with scoped bearer tokens. One audit row per agent call. | GitLab Duo AI features. No standard MCP server. Agents authenticate as project tokens or service accounts. |
| Audit log | Append-only row per action, including agent reads. Queryable by actor, namespace, and action type. | Audit events available on Premium and Ultimate. Covers admin and project events; not per-agent-read. |
| Permission model | Namespace tree (org, project, repo). Agent tokens scoped to repos and action types. | Group/subgroup/project hierarchy with roles. Service accounts for automation. No first-class agent scope. |
| CI/CD | Not included. Integrates via signed webhooks to external CI. citadel-cli for local runs. | GitLab CI/CD built in. Shared and self-hosted runners. Full pipeline DSL. |
| Issues and projects | Issues at any namespace level. Boards, milestones, and project graph built in. | GitLab Issues, Epics, Roadmaps, Boards. Rich planning surface on Premium and Ultimate. |
| Wiki | KG-backed wiki pages. API reference blocks stay current with the code graph. | Markdown wiki per project. No automatic freshness or code-graph integration. |
| Self-hosting | Single binary. Helm chart for Kubernetes. No runtime cluster required. | GitLab Omnibus or Helm chart. Omnibus bundles all services but still a heavy install. |
Migration path
- 01
Create a namespace
Sign up and create a user or org namespace on src.land.
- 02
Import repos from GitLab
Paste your GitLab HTTPS remote URL into the import wizard. Full history and branches arrive.
- 03
Indexing runs on arrival
The knowledge graph builds from imported history. Symbol search and MCP queries work immediately.
- 04
Update remote URLs
Point remotes to src.land. The SSH and HTTPS push workflow is unchanged.
- 05
Migrate CI to webhooks
Replace GitLab CI stages with signed webhook calls to your external CI runner. The citadel-cli handles local builds.
- 06
Mint scoped agent tokens
Create bearer tokens for each agent or automation with only the permissions it needs.
No rebase or squash required. A continuous mirror keeps the GitLab remote in sync during the transition. Move CI last, after the code and issues are settled.
Try it yourself
One repo is enough to evaluate.
Import from any git remote. History and indexing arrive together.