Codebahn

io.github.codebahnPublished by GitHub account codebahnv0.4.2Updated Oct 25, 2026

Codebahn is the private GitHub alternative: fast Git and CI for developers and teams.

VerifiedStreamable HTTPWeb executableCloud & InfrastructureDeveloper Tools

Overview

AI-generated overview

Codebahn's hosted MCP server connects AI coding agents to a private Git platform for repos, issues, pull requests, CI, releases and search.

What you can do
Create, list and read repositories, files, branches, commits, diffs and ref comparisons, and search code and repos, issues and pull requests, including creating, listing and merging pull requests with diffs, commits and reviews, and creating and listing issues with comments, labels and milestones, plus dispatching CI workflows, listing runs, reading logs and managing secrets and variables, and managing releases, attachments, tags, webhooks and branch protections.
When to use it
Useful when an assistant should work directly with a team's Codebahn-hosted code: reviewing pull requests commit by commit, filing or triaging issues, inspecting CI runs and logs, or cutting releases without leaving the chat.
Requirements
A remote endpoint at codebahn.net/mcp added to an MCP client; OAuth login approved in the browser on first use. No API key or environment variable is needed for the MCP endpoint.
Before you install
The server can write and change data: creating and merging pull requests, creating issues and comments, dispatching CI workflows, managing secrets and variables, releases, webhooks and branch protections. OAuth grants access to your Codebahn account, so approve only the scopes you intend.

Installation

In SourceWeft

  1. Open Codebahn in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.codebahn%2Fcodebahn/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "codebahn": {
      "type": "http",
      "url": "https://codebahn.net/mcp"
    }
  }
}

README

Codebahn CLI

Codebahn is the private GitHub alternative: fast Git and CI for developers and teams. Your code is stored and served. Not scanned, not trained on, not tracked. Swedish company, EU-only infrastructure, every sub-processor EU-incorporated. Built on Forgejo, easy to leave.

Command-line interface for Codebahn.

codebahn auth logincodebahn pr listcodebahn issue create --title "ship it"codebahn ci dispatch --workflow ci.yml

One binary. OAuth login. No config files.

Install

Linux and macOS

bash
curl -fsSL https://releases.codebahn.net/cli/install.sh | sh

This detects your platform, downloads the latest binary, verifies its SHA256 checksum, and installs to ~/.local/bin. Override the location with INSTALL_DIR:

bash
curl -fsSL https://releases.codebahn.net/cli/install.sh | INSTALL_DIR=/usr/local/bin sh

Windows

powershell
irm https://releases.codebahn.net/cli/install.ps1 | iex

This downloads the latest binary, verifies its SHA256 checksum and GPG signature (if gpg is installed), installs to %LOCALAPPDATA%\Programs\codebahn, and adds it to your PATH. Override the install location with $env:INSTALL_DIR. Restart your terminal after install.

From source

Install from source (note: source builds skip auto-update):

bash
go install github.com/codebahn/codebahn-cli/cmd/codebahn@latest

Updates

The CLI checks for new versions once every 24 hours and prints a notice when one is available. To update in place:

bash
codebahn update

This downloads the new binary from releases.codebahn.net, verifies its GPG signature and SHA256 checksum, and replaces itself. No external tools required.

To check without installing: codebahn update --check. To silence the periodic check: set CODEBAHN_NO_UPDATE_CHECK=1 or add "check_updates": false to the config file (~/.config/codebahn/config.json, or %APPDATA%\codebahn\config.json on Windows).

Authentication

Log in through the browser. Tokens are saved to ~/.config/codebahn/config.json (%APPDATA%\codebahn\config.json on Windows).

bash
codebahn auth logincodebahn auth status

For CI, set CODEBAHN_TOKEN instead.

Commands

GroupWhat
repoCreate, list, read files, branches, commits, diffs, compare refs
issueCreate, list, comment, labels, milestones
prCreate, list, merge, diff, commits, reviews
ciDispatch workflows, list runs, read logs, secrets/variables
releaseReleases, attachments, tags
webhookManage webhooks
protectionManage branch protections
searchCode, repos, issues

When you run inside a Git repo, --owner and --repo are detected from the remote.

bash
codebahn pr merge --index 42 --style squashcodebahn repo cat --ref main --filePath README.mdcodebahn ci logs --run_id 7

Review a pull request commit by commit:

bash
codebahn pr commits --index 42codebahn repo show --sha 1a2b3c4 --file_path internal/foo.gocodebahn repo compare --base main --head feat/foocodebahn repo log --path internal/foo.go --limit 10

Every subcommand accepts --help.

MCP and AI agents

Codebahn has a built-in, hosted MCP server that connects AI coding agents to your repos, issues, pull requests, and CI:

https://codebahn.net/mcp

The tools/ package in this repo is the shared source of truth for both this CLI and the MCP endpoint. 103 tools, one set of types, zero drift.

The server authenticates over OAuth, discovered via /.well-known/oauth-protected-resource. Add the URL to your MCP client and approve the OAuth prompt in your browser on first use.

Claude Code

bash
claude mcp add --transport http codebahn https://codebahn.net/mcp

Codex

bash
codex mcp add codebahn --url https://codebahn.net/mcp

VS Code (Copilot)

Create .vscode/mcp.json in your project root:

json
{  "servers": {    "codebahn": {      "type": "http",      "url": "https://codebahn.net/mcp"    }  }}

Cursor

Create .cursor/mcp.json in your project root:

json
{  "mcpServers": {    "codebahn": {      "type": "http",      "url": "https://codebahn.net/mcp"    }  }}

Full docs: codebahn.net/docs/mcp/.

Release infrastructure

Codebahn is an EU-hosted Git platform. We apply that principle to our own tooling: the CLI's release artifacts are hosted on our own EU infrastructure, not on GitHub or any third-party CDN.

How releases work:

  1. Source code lives here on GitHub (public, for discoverability).
  2. When we tag a release, GitHub Actions cross-compiles binaries for Linux and macOS (amd64 and arm64).
  3. The workflow uploads the binaries, a SHA256 checksums file, and a detached GPG signature to Scaleway Object Storage in fr-par (Paris, France), served at releases.codebahn.net.
  4. codebahn update fetches from releases.codebahn.net. It never contacts GitHub.

Release artifacts are hosted on our own EU infrastructure so the CLI's update check stays within the EU. Source code is on GitHub because it's the standard home for open-source projects. GitHub Actions compiles the public source; no customer data is involved in the build.

Verifying releases

Every release includes a checksums.txt file signed with our GPG release key. The CLI verifies both the signature and the checksum automatically during codebahn update.

To verify manually:

bash
# Import the public keycurl -sS https://codebahn.net/release-signing-key.asc | gpg --import
# Download and verifycurl -O https://releases.codebahn.net/cli/v0.1.0/checksums.txtcurl -O https://releases.codebahn.net/cli/v0.1.0/checksums.txt.ascgpg --verify checksums.txt.asc checksums.txt
# Check the binarysha256sum -c checksums.txt --ignore-missing

The public key is also embedded in the CLI binary itself, so codebahn update does not need to fetch it separately.

Cutting a release

Tag and push:

bash
git tag v0.1.0git push origin v0.1.0

The GitHub Actions workflow runs tests, builds with GoReleaser (parallel cross-compilation, GPG signing), and uploads everything to releases.codebahn.net. The latest.json manifest is updated so existing installs pick up the new version within 24 hours.

For a local release (bypassing CI): ./scripts/release.sh v0.1.0. Requires goreleaser, gpg (with the release key), and aws CLI configured for Scaleway.

Contributing

See CONTRIBUTING.md.

License

MIT

Source: README.md at commit 1e6094f

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

5
  1. v0.4.2LatestOct 22, 2026
  2. v0.4.1Oct 13, 2026
  3. v0.4.0Oct 6, 2026
  4. v0.3.1Sep 23, 2026
  5. v0.2.2Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts