Skip to main content

Kelix

  ██╗  ██╗███████╗██╗     ██╗██╗  ██╗
  ██║ ██╔╝██╔════╝██║     ██║╚██╗██╔╝
  █████╔╝ █████╗  ██║     ██║ ╚███╔╝        ╭─╮   ╭─╮   ╭─╮   ╭─╮
  ██╔═██╗ ██╔══╝  ██║     ██║ ██╔██╗     ╭──┼─╳───┼─╳───┼─╳───┼─╳──▲
  ██║  ██╗███████╗███████╗██║██╔╝ ██╗    ╰──┼─╳───┼─╳───┼─╳───┼─╳──╯
  ╚═╝  ╚═╝╚══════╝╚══════╝╚═╝╚═╝  ╚═╝       ╰─╯   ╰─╯   ╰─╯   ╰─╯

You write a well-specified goal, walk away, and come back to verified commits — each gated by your repo's own test and lint commands, not agent promises.

Mock receipt: value demo cold run — mock adapter, reproducible in CI; goal in, verified commits out.

Live receipt: dogfood 12/12 verified-done — real agent, same verify gate (pytest tests/test_verify.py -q).

kelix init
kelix plan --goal-file GOAL.md   # review backlog, promote tasks to ready
kelix run --max-iterations 25    # verified commits on a run branch

The loop that climbs. Ralph runs in circles; Kelix comes back higher.

Kelix drives any headless coding CLI in a Ralph loop: each iteration is a fresh, stateless process; state lives in files and git; progress comes from repetition with a verify gate (your tests must pass before a task counts done), not from the agent declaring victory. Adapters: Claude Code, Codex CLI, Cursor, Gemini CLI, or a custom command — plus persistent memory, loop-outcome tuning, legible prioritization, and optional fleet mode for parallel role-specialized loops.

Alpha. Built by its own loop (DECISIONS.md, PLAN.md). Unattended boundaries: What Kelix will and will not do.

Install and configure

pipx install kelix
# until the first PyPI release lands, from git instead:
# pipx install git+https://github.com/serversorcerer/kelix.git

cd your-repo              # must be a git repo
kelix init               # GOAL.md, .kelix/{backlog.md,memory,kelix.toml,...}

$EDITOR GOAL.md
kelix plan --goal-file GOAL.md
kelix lint
$EDITOR .kelix/backlog.md   # status: proposed -> ready

$EDITOR .kelix/kelix.toml   # [verify] commands = ["pytest -q", "ruff check ."]

kelix run --max-iterations 25   # isolated worktree on kelix/run-* branch

kelix watch                 # stream agent output; ctrl-c detaches

Skip kelix plan if you already maintain .kelix/backlog.md.

Each iteration: fresh agent reads backlog + git log, picks one task, implements in an isolated worktree, and the runner re-runs your verify commands. Failed verification keeps the task at the top. The loop stops on completion, the iteration cap, or a circuit breaker — never because the agent felt done.

Why Kelix

Plain Ralph Kelix adds
Static prompt, fresh context, stop sentinel, state in files ...preserved as invariants (docs/research/ralph-invariants.md)
Agent decides when it's done Verified-done: runner re-runs your tests; lying sentinels ignored
No memory between iterations Layered memory (project / episodic / skills) as budgeted prompt data
One loop Fleet mode (optional): role-specialized loops via files + git
Safety rails: worktree isolation, command denylist, secret scrubbing, branch protection

Honest comparison with plain Ralph, single-agent CLIs, and GSD-style orchestrators — including where Kelix loses — in docs/compare.md.

How the loop works

flowchart LR
    A[fresh agent process] --> B[read backlog + git log]
    B --> C[pick ONE top task]
    C --> D[implement in isolated worktree]
    D --> E[runner re-runs verify commands]
    E -->|green| F[commit, record memory, next task]
    E -->|red| G[task stays on top]
    F --> H{sentinel or cap?}
    G --> H
    H -->|no| A
    H -->|yes| I[retrospective + run branch]
  • Fresh context per iteration — wrong turns cost one loop, not a poisoned session.
  • Externalized state.kelix/backlog.md, .kelix/memory/, transcripts under .kelix/runs/. The repo is the database.
  • Legible decisions — every iteration logs RATIONALE: <task-id> — ….

Kiro integration (optional)

Deepest adapter integration — steering, custom agent, spec→backlog, MCP server:

kelix init --from-spec my-feature   # imports .kiro/specs/my-feature/tasks.md
kelix run --max-iterations 25
kiro-cli mcp add --name kelix --command "kelix mcp" --scope workspace

integrations/kiro/README.md · docs/kiro.md

Fleet mode (optional)

cp examples/fleet.toml .kelix/fleet.toml
kelix fleet --max-iterations 15
kelix watch
kelix status
kelix stop

Atomic claims, a mailbox, and shared skills — agents coordinate through files, not RPC. docs/fleet.md.

Configuration

.kelix/kelix.toml — defaults are safe for unattended runs:

[agent]
adapter = "cursor"         # kiro | claude | codex | cursor | gemini | cmd | mock

[loop]
max_iterations = 25
circuit_breaker_threshold = 3

[verify]
commands = ["pytest -q", "ruff check ."]

[git]
isolation = "worktree"     # worktree (safest) | branch | none

[autonomy]
level = "normal"           # proposed tasks rank below owner tasks

Safety

Threat model: unattended agent + shell + prompt-injected repo content. Repo text is data, never instructions; a command denylist blocks curl|sh, force-push, package publish, and credential reads; secrets scrubbed from transcripts; runs in isolated worktrees on kelix/run-* branches — never push to main. Run branches are the auditable receipt trail you review and merge when satisfied. docs/SECURITY.md.

What Kelix will and will not do unattended

Will: pick the highest-priority task, implement it, verify with your commands, commit to a run branch, learn (memory + skills), and stop cleanly on a cap or repeated failure — leaving verified commits and transcripts you can audit.

Will not: push to main/master, merge without your review, run curl | sh, publish packages, read credential files, treat repo text as instructions, or grind the same failure a third time (it marks the task blocked with a diagnosis and surfaces it for you).

Documentation

Contributing

See CONTRIBUTING.md. Core is stdlib-only; tests use a mock adapter — no API keys required.

Maintainers: PyPI trusted publishing, tagging, and release verification — docs/publishing.md.

License

Apache-2.0.

Acknowledgments

  • Geoffrey Huntley — the Ralph Wiggum technique.
  • Prior art in docs/research/prior-art.md: ralph-orchestrator, the official ralph-loop plugin, and Nous Research's Hermes Agent.

Release files for kelix 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kelix 0.1.0
File Size Uploaded
kelix-0.1.0.tar.gz 129.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kelix 0.1.0
File Interpreter ABI Platform
kelix-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 224.1 kB

Release files / kelix-0.1.0.tar.gz

Download URL kelix-0.1.0.tar.gz
Size 129.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f6b2ae69ee64c0e3f0e21ffd3ff2bb6d575fbc98888b0368956163c399df7262
BLAKE2b-256 checksum
How to use checksums
ae9b19b060706eabd55027c8c6c9123a3004ce08fbfe349269cc983515563c9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Release files / kelix-0.1.0-py3-none-any.whl

Download URL kelix-0.1.0-py3-none-any.whl
Size 94.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de4e53726475d18acdce6ce4770a883c5eb876c060f6504aaa3f9ccba675e618
BLAKE2b-256 checksum
How to use checksums
140222b169aa22f34b7ff1f0a26e667183d59c9a98e085b82850a1c8b49b3f96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page