Your code. Your repos. Your runners.
A full self-hosted git platform: repositories, pull requests, issue tracking, forking, and CI/CD on a Rust backend with an Astro and SolidJS frontend. Built for teams that want the collaboration of a modern forge without giving up control of their code, packages, app automations, runners, or auth plane.
What ships in v0.1
Repositories, apps, packages, and CI on one permission plane.
Git that you own, from bare repo to branch protection.
Backed by git2-rs. Native ref locking, smart HTTP and SSH transports, and branch protections that map directly to SpiceDB relations.
Install exact-permission automations.
Cuitty Code Apps are versioned in Git, reviewed through a permission manifest, installed to users, orgs, repos, registry namespaces, or packages, and run through Airflow.
Learn more ->Private packages by default.
Host npm packages, Cargo crates, OCI images, and Python packages in a registry that respects user and organization slugs, package scopes, and install policy.
Learn more ->Share apps with your org or the public.
Publish app listings from signed Git tags, keep apps private, share with selected organizations, or make them discoverable in the Code App Market.
Learn more ->Review, threaded comments, merge strategies you control.
Squash, rebase, or merge-commit on a per-target-branch basis. Every comment, approval, and merge becomes an audit event in Observe.
Bidirectional Yapture sync.
Issues live in Yapture lists and workspaces. Comment on an issue from Code, see it in Yapture. Close it in Yapture, the PR closes too.
Apache Airflow + Dagger. Bring your own runners.
Pipelines are Airflow DAGs, steps run in Dagger containers. No proprietary runner protocol. Your hardware, your minutes, your secrets.
BetterAuth sessions, SpiceDB relations.
Instance-lockdown auth out of the box. Zanzibar-style relations let you express "reviewers can comment but not merge" without writing custom middleware.
A terminal-native client for every workflow.
Browse repos, read PRs, comment, and trigger CI from the keyboard. The same wire protocol the web frontend uses.
SpiceDB decides access. Airflow runs work. Git keeps the record.
Cuitty Code Apps, the App Market, and the Code Registry all share the same authorization graph as repositories. App installs, package publishes, scans, index rebuilds, and ownership transfers are durable Airflow runs. App source, release manifests, package indexes, and markdown docs stay Git-backed where it matters.
Open a PR from the terminal. Watch CI flow into Observe.
A scripted replay of a real cui code pr create
session: branch, push, PR open, pipeline run, audit + deploy events surfaced.
Switch tabs for the Persist and Observe scenes.
Architecture
Three clients, one Axum API, five engines, one Persist store. Every action emits to Observe.
Drive Code from your code
Open PRs, list repos, trigger CI. Same wire protocol the TUI and web frontend use.
import { createCodeClient } from "@cuitty/sdk/code";
const code = createCodeClient({
instanceUrl: "https://code.example.com",
apiKey: process.env.CUITTY_CODE_TOKEN!,
});
const pr = await code.pulls.create({
repo: "acme/api",
source: "feat/rate-limit",
target: "main",
title: "Add per-tenant rate limiting",
body: "Implements token-bucket limiter scoped to tenant id.",
reviewers: ["alice", "bob"],
});
console.log(pr.url);SDK in preview. The wire protocol is stable and documented.
Bring your code home.
Self-host the whole Git workflow on your hardware. The Docker Compose that runs Code is the same one that runs the rest of Cuitty (Persist, Observe, BetterAuth, SpiceDB). One install, one auth plane, one place to look.