EvoX Genesis
EvoX Genesis turns a high-level software objective into a persistent recursive software world: finite-lived agents recursively develop software, while only accepted consequences persist across develop
Tools that keep LLM spend predictable, from the first pull request to the monthly invoice.
Developer toolsPython · JavaScriptGitHub @VernialabsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Catch the code that inflates your LLM bill, before it ships. Cost checks for AI agent code, on every pull request.
Taken from the repository README
Loading the full README.
Read the full README ↗Catch the code that inflates your LLM bill, before it ships.
spendlint reads your agent code and points at the patterns that quietly multiply token spend: prompts that never hit the cache, system prompts that change on every call, agent loops with no limit, retries that never stop, and cost reports that miss cached tokens. It works on Python and TypeScript/JavaScript, installs in seconds, and has no dependencies.
On a pull request it only speaks up about the lines that pull request adds, right where you review them. Your code never leaves your machine or your CI runner.
Built by Vernia. Free while we are in early access.
Add .github/workflows/spendlint.yml:
name: spendlint
on: pull_request
permissions:
contents: read
jobs:
spendlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: vernialabs/spendlint@v0
Findings show up as annotations on the changed lines, with a summary on the run page. Every option (rule selection, confidence threshold, failing the build, SARIF for code scanning) is in docs/ACTION.md, and there is a complete example workflow.
pip install spendlint
spendlint . # scan a project
spendlint . --diff pr.patch --fail-on warning # only lines a diff adds; exit 1 on warnings
spendlint . --format sarif --out spendlint.sarif
Configuration, exit codes and inline ignores are in docs/USAGE.md.
| Rule | What it flags | Severity |
|---|---|---|
R-ACCT-001 | Cost computed from token counts that ignore cached-token fields | warning |
R-CACHE-001 | Anthropic requests with no prompt caching anywhere in the repo | warning |
R-CACHE-003 | A timestamp, uuid or path inside the system prompt, which breaks the cache | warning |
R-LOOP-001 | Agent loop around an LLM call with no step limit | warning |
R-LOOP-002 | Retry on an LLM call with no stop condition | warning |
R-CTX-008 | Pretty-printed JSON sent in a prompt | info |
R-CALL-004 | Embeddings requested one item at a time inside a loop | info |
R-MEDIA-001 | Image detail hard-coded to high | info |
R-OUT-001 | Chat completion with no output token cap | info |
R-MODEL-001 | Frontier model hard-coded for a cheap sub-task | info |
Every rule comes from a real cost bug that an open-source agent team found and fixed. spendlint reads code, not invoices, so treat each finding as a pointer worth a second look in review.
spendlint is the first product from Vernia. Next up are Vernia Reason, a reasoning harness that reviews pull requests with the context of the whole repository, and Vernia Ledger, an agent that connects to your providers and billing to tie every dollar to a feature and a customer. Want early access? Write to [email protected].
spendlint keeps anonymous usage counts so we can see which rules help and where they get in the way. Here is exactly what that means:
spendlint telemetry show, and Vernia's collector
at t.vernia.in, which stores only these counts (not your IP address). Its source is in
collector/. Set SPENDLINT_TELEMETRY_URL=none
to keep everything local.SPENDLINT_TELEMETRY=on or the Action's telemetry: on input.spendlint telemetry off, SPENDLINT_TELEMETRY=off, or DO_NOT_TRACK=1.The full schema is in docs/telemetry.md. A paid plan with telemetry fully disabled is on the way for teams that need it.
spendlint is source-available under the PolyForm Small Business License 1.0.0. It is free for individuals and for companies with fewer than 100 people and under US$1 million in annual revenue (the license has the exact terms). Larger organisations need a commercial license; see COMMERCIAL.md.
See CONTRIBUTING.md. Run the tests with:
python -m spendlint.test_rules && python -m spendlint.test_cli && python -m spendlint.test_telemetry