About · the agent we’d trust at 2 AM

The verify-gated CI agent for code review, intelligent test selection, and auto-fix failed builds.

One scoreboard: your tests exit 0. Runs on your runner with your LLM key — we never rewrite workflow YAML to fake green.

Customer-hosted BYO key No workflow YAML edits
Kramlipi mascot — verify-gated CI agent for PR review and CI repair

Why

Developers were carrying all the burden.

Teams chase reviewers, rebase again, re-run CI because nobody trusts a stale green, and babysit broken builds at night. Nobody taught that ritual — they learned it because a broken main was scarier than the checklist.

We built Kramlipi so shipping doesn’t depend on who is awake. The model can talk. The exit code decides.

Click a pain. Watch the job.

The three jobs that steal Friday nights.

Play the product — no signup. These are the surfaces we actually ship, not a slogan wall.

PR #1842 · checkout boundary first-pass review
68def charge(card, amount):
69– return gateway.take(card, amount)
69+ if amount <= 0:
70+ raise ValueError(“amount”)
71+ return gateway.take(card, amount)
▲ scanner + critic · kramlipi Evidence on the changed line — hardcoded secrets, eval, assignment-instead-of-compare — not a docstring nit. Humans still own design.
Flake memory · same SHA unstable · skip on MR
×
tests/test_payments.py::test_webhook_retry ci.yml · run #2479 · commit a1c3e92
fail
same test · same commit ci.yml · run #2480 · passed on retry
pass
Same workflow + same SHA = flake signal
Skip on MR with a reason in mr_test_report.json
Real regressions still fail the gate
test-intel · PR #42 12 / 2,000 selected
test_checkout_boundary test_charge_rejects_zero test_refund_partial test_catalog_search test_admin_export test_legacy_import
git diff → impact map → narrowed verify_cmd
Python / pytest live (beta)
Full suite stays the gate on main
CI run #2481 verify_cmd exit 0
×
test_checkout_boundary AssertionError: expected declined
00:42
→ parse log · edit src/checkout.py:72
→ add boundary regression test
→ pytest -q · no .github/workflows edits
pytest -q 214 passed · draft PR ready
01:18

Honest bar: flake skip is heuristic memory, not “100% detection.” Selective tests are pytest-live (beta). Review is first-pass — not a senior design replacement. We never fake green by editing workflow YAML.

Get this running now

Binary. Actions. VS Code. ~2 minutes.

No credit card. Add GEMINI_API_KEY (or Claude / OpenAI) as a secret — never commit it. Full copy-paste pack: code-review-ci.

Download the binary. Run it on the laptop.

Linux, Windows, macOS from the public release. Then run setup and doctor — copy the black terminal below.

first run · laptop
# after download + chmod (Linux/macOS)
export GEMINI_API_KEY=...
$ code-agent setup
$ code-agent doctor --provider-test

# PR review
$ code-agent experts run code-review --pr 42 -w .

# selective tests on a PR
$ code-agent experts run test-intel --pr 42 --run-tests -w .

# red CI → verify green
$ code-agent experts run bug-fix --log ci.log --verify-cmd "pytest -q"

GitHub Actions — paste and open a PR.

Save as .github/workflows/kramlipi-code-review.yml. Repo → Settings → Secrets → GEMINI_API_KEY.

kramlipi-code-review.yml
name: AI code review (kramlipi)

on:
  pull_request:
    types: [opened, synchronize, reopened, ready_for_review]

permissions:
  contents: read
  pull-requests: write

jobs:
  review:
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: kramlipi/code-agent-action@v0.1.7
        with:
          expert: code-review
          version: code-agent-v0.1.7
          pr: ${{ github.event.pull_request.number }}
        env:
          GH_TOKEN: ${{ github.token }}
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
          CODE_AGENT_MODEL: gemini/gemini-3.1-flash-lite

More platforms and binary-in-CI variants: kramlipi.github.io/code-review-ci

GitLab CI — MR event, masked variable.

Add to .gitlab-ci.yml. CI/CD variable GEMINI_API_KEY (masked).

.gitlab-ci.yml
stages:
  - review

ai-code-review:
  stage: review
  image: ubuntu:24.04
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  before_script:
    - apt-get update -qq && apt-get install -y -qq curl git
    - |
      curl -fsSL -o /usr/local/bin/code-agent \
        "https://github.com/kramlipi/code-agent-binaries/releases/download/code-agent-v0.1.7/code-agent-v0.1.7-linux"
      chmod +x /usr/local/bin/code-agent
  script:
    - git fetch origin "${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}" --depth=50 || true
    - git diff "origin/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}...HEAD" > /tmp/mr.diff
    - export CODE_AGENT_MODEL="${CODE_AGENT_MODEL:-gemini/gemini-3.1-flash-lite}"
    - code-agent experts run code-review --diff-file /tmp/mr.diff -w .

Azure DevOps — pipeline + secret variable.

Save as azure-pipelines-code-review.yml. Variable group: GEMINI_API_KEY.

azure-pipelines-code-review.yml
trigger: none
pr:
  branches:
    include:
      - "*"
pool:
  vmImage: ubuntu-latest
steps:
  - checkout: self
    fetchDepth: 0
  - bash: |
      curl -fsSL -o /usr/local/bin/code-agent \
        "https://github.com/kramlipi/code-agent-binaries/releases/download/code-agent-v0.1.7/code-agent-v0.1.7-linux"
      chmod +x /usr/local/bin/code-agent
    displayName: Install code-agent v0.1.7
  - bash: |
      TARGET="${SYSTEM_PULLREQUEST_TARGETBRANCH:-main}"
      TARGET="${TARGET#refs/heads/}"
      git fetch origin "$TARGET" --depth=50 || true
      git diff "origin/${TARGET}...HEAD" > /tmp/pr.diff
      export CODE_AGENT_MODEL="${CODE_AGENT_MODEL:-gemini/gemini-3.1-flash-lite}"
      code-agent experts run code-review --diff-file /tmp/pr.diff -w .
    displayName: Run AI code review
    env:
      GEMINI_API_KEY: $(GEMINI_API_KEY)

VS Code / Cursor — same loop, in the editor.

Install the extension, set your key in the environment, run review or repair without leaving the file.

Open VS Code Marketplace →
Command Palette
>Kramlipi: Review this PR
>Kramlipi: Fix failed build
>Kramlipi: Run test-intel on the diff

Listing: kramlipi.kramlipi-code-agent

What we stand for

Trust is a product feature.

Verify-gated

Subprocess exit code beats model opinion. No “looks fixed.”

Customer-hosted

BYO LLM. We don’t ask you to upload your monorepo to our cloud.

No training on your code

Telemetry is counts, not prompts or diffs.

No CI YAML edits

We fix application code and open draft PRs — not silent workflow changes.

FAQ

Questions teams ask before they install.

What is Kramlipi?

A customer-hosted verify-gated CI agent: AI PR review, flaky-test memory, selective pytest on PRs, and red-build repair until your verify command exits 0.

Does it detect flaky tests?

It stores fail/pass history per test. Same commit, fail then pass = flake evidence. You can skip known flakes on an MR with a reason. Heuristic memory — not a perfect classifier.

Do you host our source?

No. Binary, Action, GitLab/Azure, or VS Code on your side. BYO LLM key. We do not train on your codebase in our cloud.

Where do I download it?

code-agent binaries · CI copy-paste · VS Code Marketplace.

Get this running now.

~2 minutes · no credit card · your key stays in env.

Scroll to Top