simci // headless ci

CI without git push.

Run your working tree through real CI pipelines. No commit. No YAML. Built for developers and agents.

$ sci run
 test      2.3s
 lint      0.8s
 build     4.1s
──
passed in 7.2s

the problem

CI is the slowest part of your day.

  • debug-by-commit is a tax.

    Ten-minute feedback loops on YAML typos aren't a workflow. sci run runs the pipeline locally in seconds.

  • yaml is not a language.

    simci pipelines are Python or Scheme. Import, share, unit-test them like any other code.

  • agents need tight loops.

    Claude Code, Cursor, Devin — they iterate faster than any CI queue. simci closes the loop.

how it works

Write. Run. Ship.

  1. 01

    write a pipeline.

    from simci import pipeline, step
    
    @pipeline
    def ci():
        step.run("cargo test",   label="test")
        step.run("cargo clippy", label="lint")
        step.run("cargo build --release", label="build")
  2. 02

    run it locally.

    $ sci run
     test      2.3s
     lint      0.8s
     build     4.1s
    passed in 7.2s
  3. 03

    commit when green.

    The same pipeline runs in cloud simci on push. Same binary, same DSL, same JSON plan.

the agent angle

Agents can't wait for GitHub Actions.

Every git push to test a pipeline is a tax on the agent's reasoning loop. simci removes the tax.

  • no commit spam. agents iterate on pipelines the way they iterate on code.
  • no burned minutes. failed iterations are free.
  • any shell-capable agent works. no mcp server required.
  • structured output. --format=json is machine-readable.

compare

The short version.

simci gh actions buildkite
local working tree yes no no
pipeline language python / scheme yaml yaml
headless rest api yes no partial
json output yes no no
self-hostable yes no yes

semantics from buildkite — wait, block, input, trigger, group.

install

One command.

$ curl -fsSL get.simci.dev/install.sh | sh