KiCI
Open-source TypeScript CI/CD — usable today. Star on GitHub →

CI/CD that runs on your infrastructure — we never see your source or secrets.

Author pipelines in real, typed TypeScript — the kind your AI coding agents can write, type-check, and run before it ships. Your own agents run every job, confined to your infrastructure; KiCI hosts the dashboard so your team keeps full visibility.

Get started Read the docs
Apache-2.0 + AGPL-3.0· npm: kici· ★ Star on GitHub
1

Author in typed TypeScript

Real code with types and autocomplete — not YAML. Loops, conditionals, and reuse with the full language.

2

Test locally and remotely

Run on your real agents with kici run remote before you push — or run on your own machine with kici run --local and dry-run with kici preview.

3

Sovereign execution, hosted observability

Jobs run on your own infrastructure — we never see your source, secrets, or build output. The hosted dashboard gives your team full visibility and management of every run.

An open alternative to the CI you already run

Moving off GitHub Actions, GitLab CI, CircleCI, Jenkins, or Buildkite? KiCI gives you push-to-run pipelines in real, typed TypeScript — running on your own infrastructure, with a hosted dashboard for visibility. See how it compares, point by point:

GitHub ActionsGitLab CI/CDBuildkiteCircleCIDaggerRWX MintWoodpecker CIJenkins
See all comparisons →

Built for agent-authored pipelines.

Pipelines are real, typed TypeScript, so your AI coding agents can author them — and because it's typed code, not opaque YAML, an agent's mistakes surface as type errors, and you can run the pipeline on your real agents with kici run remote before it ships. Every job executes confined on your own infrastructure, so an agent-written change stays typed and isolated by construction.

How it works

Git host · push / PR
webhook
KiCI · hosted platform
Dashboard · run history · webhook relay · access

Observability and control for your whole org.

encrypted relay (WebSocket)
YOUR INFRASTRUCTURE · sovereign
Orchestrator

Matches triggers, dispatches jobs, auto-scales agents.

Agents

Clone your repos, run steps, stream logs back.

Your code, secrets, and compute stay here.

Your pipelines are programs. Write them like one.

Real TypeScript gives you types, loops, conditionals, functions, and reuse — discover work at runtime, share steps across jobs, and gate deploys with real code:

// .kici/workflows/ci.ts — code, not config
import { workflow, job, step, rule, pr, push } from '@kici-dev/sdk';
import { readdir } from 'node:fs/promises';

const install = step('install', async ({ $ }) => {
  await $`pnpm install --frozen-lockfile`;
});

export default workflow('ci', {
  on: [pr(), push({ branches: 'main' })],
  jobs: [
    job('test', {
      runsOn: 'kici:os:linux',
      // discover packages at runtime — a real loop, not a hardcoded list
      matrix: async () => {
        const entries = await readdir('packages', { withFileTypes: true });
        return entries.filter((e) => e.isDirectory()).map((e) => e.name);
      },
      steps: [install, step('test', async ({ $, matrix }) => {
        await $`pnpm --filter ${matrix!.value} test`;
      })],
    }),
    job('deploy', {
      runsOn: 'kici:os:linux',
      needs: ['test'],
      rules: [rule('only on main', ({ event }) =>
        event.type === 'push' && event.payload?.ref === 'refs/heads/main')],
      // each job runs on a fresh clone, so deploy installs too — reuse the step
      steps: [install, step('deploy', async ({ $ }) => {
        await $`pnpm run deploy`;
      })],
    }),
  ],
});

Pricing

Free forever — full functionality. Execution runs on your infrastructure; the hosted dashboard and webhook relay are part of every tier. Paid tiers just raise the limits — more orchestrators, members, retention, relayed-webhook volume, and live-log streaming.

Free
€0
2 orch · 3 members
30d retention
Pro
€49/mo
5 orch · 10 members
90d retention
Team
€199/mo
15 orch · 30 members
180d retention
Business
€499/mo
50 orch · 150 members
365d retention
See full pricing →

Your pipelines deserve real code.

Sign up Quickstart