Skip to content

Releases: parisneto/anticharon

v0.7.0 — honest prices, honest history

Choose a tag to compare

@parisneto parisneto released this 08 Oct 22:07
17ffe58

Anticharon v0.7.0: honest prices, honest history

One price per model, on one definition, for the live quote, the stored history and the alerts.

What changed for you

Standard-tier prices. A model's price is now the cheapest standard-tier endpoint, blended with your calibration. Flex, fast, priority, ultrafast, turbo and batch endpoints are different products and no longer set the price. Visible effect with default weights: openai/gpt-5.6-luna 0.03265 → 0.06529 and google/gemini-3.1-flash-lite 0.04081 → 0.08162. Models without tier endpoints are unchanged. Each price row names the endpoint it came from (endpoint_tag).

History from listed prices. Daily history is OpenRouter's listed endpoint prices blended with your calibration, not OpenRouter's "effective" price. The effective price moves with real cache-hit traffic even when no price changed, so it made stable models look volatile and compared badly with your live quote. A past day is the exact time-weighted average of the cheapest standard price over the UTC day; today is the live quote. A new model gets 30 days of history on its first run. If you recalibrate, every stored day is re-derived without a refetch.
On our reference VM: luna, qwen, nano and gemini-3.1-flash-lite read STABLE; deepseek and glm, whose prices really moved, read VOLATILE. nano no longer gets a false "migrate to luna" recommendation.

Run, then check, then history agree. run stores its quote as today's point, so check and history right after it show the same prices, and persisted alerts match the live response.

Alerts compare like with like. PRICE_SPIKE and PRICE_DROP compare the latest observation with the 7-day observed average. The live quote never raises one; its gap to the observation is reported as quote_vs_observed_pct.

Analytics you can trust. A model with 14 or more observed days gets a normal profile on its first run (NEWLY_TRACKED is decided by observed days, not by install date). Missing 30-day baselines are reported as unavailable, never guessed. Results carry observation_count, dates and classification_reason.

Hermes sync. Source and order are saved even when the model list is unchanged, repeated syncs are idempotent, a manual default is kept while Hermes owns the default, and exactly one default is reported.

Redirect aliases are visible. Slugs like deepseek/deepseek-v4-flash-latest (listed by OpenRouter as ~…-latest) show as NOT_TRACKED with a clear reason instead of silently disappearing. They are never priced and never given history.

Smaller items. MCP resource anticharon://effective_prices.json (read-only); :batch models are hidden from discovery (an exact model add x:batch still works); one help contract: <command> -h and help <command> everywhere, with clear errors for <command> help.

Upgrade

Back up first (optional but recommended):

cp -a ~/.anticharon ~/.anticharon.bak

CLI, recommended (manual, pinned):

uv tool install --force git+https://github.com/parisneto/anticharon.git@v0.7.0

pip install --force-reinstall git+https://github.com/parisneto/anticharon.git@v0.7.0 also works. Then run once so your stored history moves to the new basis:

anticharon run --force

Until that run, check and history show cached quotes and treat models as NEWLY_TRACKED. Your old history is not deleted: it is kept inside effective_prices.json as legacy_effective_observations and never read.

Self-update (EXPERIMENTAL). anticharon update always reinstalls from the repository's default branch (it does not compare versions and has no --force flag; the reinstall itself is forced) and may need manual intervention. It gives you v0.7.0 once v0.7.0 is on that branch. check-updates compares your installed version with the latest GitHub release:

anticharon check-updates

Then:

anticharon update --type install_only

install_only (alias 1) is the default and the supported type. It reinstalls and restarts nothing, so a running agent is not interrupted. restart_host, phoenix and reload_request (aliases 2 to 4) are deprecated, still accepted, and planned for removal in 0.8.0.

MCP (agents). Call run_update() (the default type is install_only). It executes shell commands on the host, so it should run with explicit user intent. The running MCP server keeps the old version, and check_updates keeps reporting it, until it is reloaded:

  • Hermes: ask the user to send /reload-mcp in chat.
  • Other MCP hosts: restart the host or reconnect the MCP server.

The response reports running_version (the running server's version). The default branch can hold an older version than the one you run, so call check_updates after reloading to confirm the new version. Verified on a Hermes host: run_update then /reload-mcp reconnected the server on the reinstalled version. Prompts, tools and resources keep their names; new fields are additive.

Downgrading. If you go back to 0.6.x, run anticharon run --force after you return to 0.7.0: the older version rewrites stored observations on its own basis, and 0.7.0 re-derives them from the stored listed prices on that run.

Known limits

  • History covers the last 30 days OpenRouter returns; longer history is not stored yet.
  • Service-tier detection uses the endpoint tag; an endpoint whose tag cannot be matched never sets a price.
  • A model whose endpoints are all service tiers keeps a price and reports ONLY_NON_STANDARD_TIERS.
  • deepseek/…-latest style redirects are not priced; use the dated slug.

v0.6.1 Beta: Drop Inverted Phoenix & Self-Update Testing

Choose a tag to compare

@parisneto parisneto released this 26 Sep 23:32
5d58300

Release Manifest: Anticharon v0.6.1 Beta

Sprint: Multi-Wave Ecosystem Ergonomics & MCP Discoverability — Patch Release
Release Tag: v0.6.1-beta
Date: 2026-09-26


1. Executive Summary

Anticharon v0.6.1 Beta refines the experimental host self-update subsystem following live host testing on a dedicated Hermes VM.

Key updates:

  1. Drop phoenix_inverted sequence: Host validation confirmed that attempting to terminate the server before launching a background installer is prone to orphaned states. phoenix_inverted has been removed. The remaining 4 sequences (install_only, restart_host, phoenix, reload_request) ensure the new binary is safely compiled and installed before any termination or reload signals are dispatched.
  2. Version Bump to Enable Live Multi-Version Verification: v0.6.1-beta is published as the latest release, allowing agent hosts on v0.6.0-beta to immediately detect 0.6.1 via check_updates / anticharon check-updates and verify the live update workflows.

2. Multi-Version Testing on Hermes Host VM

To test and verify the update workflow between release tags, run:

# Baseline installation (v0.6.0-beta):
uv tool install --force git+https://github.com/parisneto/anticharon.git@v0.6.0-beta

# Verify installed baseline:
anticharon -v
# Output: anticharon 0.6.0

# Check for updates (will detect v0.6.1-beta available):
anticharon check-updates

# Perform the upgrade to v0.6.1-beta:
anticharon update --type install_only

# Or force-install v0.6.1-beta directly:
uv tool install --force git+https://github.com/parisneto/anticharon.git@v0.6.1-beta

# Verify upgraded version:
anticharon -v
# Output: anticharon 0.6.1

3. Supported Update Sequences

With phoenix_inverted removed, the supported update sequences are:

Option / Alias Sequence Name Behavior
1 install_only Runs uv tool install --force git+https://github.com/parisneto/anticharon.git (or pip fallback) in-place without host restarts.
2 restart_host Reinstalls binaries, then runs hermes gateway restart to restart the host.
3 phoenix Reinstalls binaries, then terminates the MCP server process so the host automatically respawns it.
4 reload_request Reinstalls binaries and advises the user to send /reload-mcp in Hermes chat.

4. Verification Evidence

  • Automated Test Suite: uv run pytest passing 100% green (304 tests passed, 3 deselected).
  • Parity Checked: CLI, MCP tool annotations, llms.txt, and documentation all updated in lockstep.

v0.6.0 Beta: Ecosystem Ergonomics & MCP Discoverability

Choose a tag to compare

@parisneto parisneto released this 26 Sep 22:24

Anticharon v0.6.0 Beta — Ecosystem Ergonomics & MCP Discoverability

This release delivers the complete Ecosystem Ergonomics multi-wave sprint across 7 execution waves:

🪙 Key Highlights

  • Unified Agent Message Contract (#12, #22):
    Every CLI --json output and MCP response now features a standardized envelope with status, messages (never empty, ending with timed COMPLETED), and elapsed_ms. error and refused map deterministically to MCP isError: true and CLI exit code 1.
  • Separated Command Surfaces (#13):
    • check_prices and get_model_history are now pure local reads (no network, no side effects) reading cached history.csv and persisted alerts.json.
    • run_prices is the exclusive network fetch-and-persist tool with same-day smart refresh skipping (--force override).
  • Source-Tagged Shortlist & Slug Integrity (#14, #15):
    Exact catalog slug validation, explicit defaults, preservation of manual models across Hermes synchronization, and strict refusal of unmonitored model targets before network access (D-14/18c).
  • Full Tool Surface & Parity (#16, #17, #18):
    • Expanded from 4 to 13 MCP tools: added run_prices, add_model, remove_model, list_models, self_test, calibrate_token_weights, calibrate_fast, check_updates, run_update.
    • Comprehensive MCP-9 annotations on all 11 core tools (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).
    • Native 5-prompt registry (cost_spike_triage, model_migration_advisor, etc.) accessible via MCP and CLI anticharon prompt.
  • Self-Update Tools (#20):
    User-initiated check_updates / anticharon check-updates with SemVer tuple comparison, 2s GitHub timeout, and experimental run_update execution sequences.
  • Fallback-Aware Alerts (#19):
    Persisted NEXT_FALLBACK_PRICE / NEXT_FALLBACK_UNAVAILABLE failover cost impact alerts comparing active default against sequential Hermes fallbacks.
  • Documentation & Wheel Packaging (#21, #23):
    Single authoritative llms.txt packaged directly into the wheel and exposed via anticharon://llms.txt. Clean installation via uv tool install or pip install.

🔬 Empirical Verification

  • Automated Test Suite: 304 passed, 3 deselected in 1.37s (100% green).
  • MCP Inspector Ritual (MG-1): 100% PASS on all 13 tools, 4 resources, and 5 prompts.
  • Hermes Host Test (MG-3): Verified on live Hermes VM (Linux 6.8.0-1067-gcp x86_64) — all 13 tools discovered over stdio, diagnostics green.

📦 Closed Issues

Resolves: #12, #13, #14, #15, #16, #17, #18, #19, #20, #21, #22, #23.

Anticharon v0.5.5 — Safer Hermes Sync and Resilient Price Charts

Choose a tag to compare

@parisneto parisneto released this 23 Sep 18:18
2e31115

This patch release hardens the two places where incomplete upstream data could cause the most disruption: synchronizing a Hermes shortlist and rendering policy-filtered price charts.

Highlights

  • Preserves an existing Hermes shortlist whenever CLI detection is incomplete, including failed or malformed fallback-provider responses.
  • Correctly parses Hermes YAML fallback lists and exposes incomplete detection as a visible warning across CLI, JSON, MCP, and self-test output.
  • Keeps ZDR price charts bounded and correctly ordered, including defensive handling of non-finite upstream prices.
  • Adds deterministic regression coverage for the repaired failure paths.
  • Corrects repository metadata that incorrectly attributed automated assistance as co-authorship; release contents were verified unchanged, and published-history safeguards were strengthened.

Verification

  • uv run pytest: 203 passed, 3 live tests deselected.
  • uv run anticharon test: all core diagnostics passed.
  • Backend CI and CodeQL passed.
  • Changed-line lint gate passed.

See CHANGELOG.md for the complete technical record.

v0.5.3: feat(release): bump version to 0.5.3 and perform advisory audit

Choose a tag to compare

@parisneto parisneto released this 20 Sep 00:58

v5_release_notes_infographic_2026-09-17

🚀 Anticharon v0.5.3: The Pricing Engine v2 Release

The final milestone before our public debut!

I am We are thrilled to announce Anticharon v0.5.3, a massive architectural leap that completely rewrites how token economics and model pricing are evaluated. Gone are the days of flat-rate assumptions. Welcome to Pricing Engine v2: cache-aware, policy-compliant, and empirically grounded.


🤖 Give Your Agents Financial Model Pricing Awareness on OpenRouter.ai

Stop letting flat-rate pricing dictate your agent's intelligence. That other more "expensive" model you did not tested, might actually be cheaper than you or your agent thinks. The data to proper calculate is complex and provider fallback, privacy policies and real-world prompt caching affects it.

Anticharon is an Agent-to-Agent (A2A) intelligence engine built to expose the illusion of flat rates Model pricing on OpenRouter.ai (I use and ❤️ them).

Ask your agents to test safely, ephemerally in under a few seconds:

uvx --from git+https://github.com/parisneto/anticharon anticharon mcp

to attach Anticharon as an MCP Server with Tools, Prompts and our llms.txt
You will start to have the data and power to autonomously calculate cache-adjusted token costs, avoid 🐌 CREEPING INFLATION of older models, and safely route to cheaper sibling models.

It's free, fun and safe. I love to get a report up from my agent at 10am, like that :

--------------------------------------------------------------------------

📊 RELATIVE PRICE SPECTRUM ($/1M Tokens):
  ▲ Cheaper
    deepseek/deepseek-v4-flash-0731  $0.01169   ███ 🏆 [BEST]
    qwen/qwen3.7-flash               $0.01195   ███
    google/gemini-2.5-flash-lite     $0.01604   ████
    openai/gpt-5.6-luna              $0.03267   █████████ ★ [DEFAULT]
    google/gemini-3.1-flash-lite     $0.04084   ███████████
    minimax/minimax-m2.7             $0.07699   ████████████████████
    google/gemini-3.8-flash          $0.12140   ████████████████████████████████
    google/gemini-3.7-flash          $0.12140   ████████████████████████████████
  ▼ More Expensive
--------------------------------------------------------------------------

🚨 ALERTS & WARNINGS:
  🟢 [DROP]  Model openai/gpt-5.6-luna price dropped 22.1% vs 7-day MA. Current: $0.03267/1M.
  🟢 [DROP]  Model google/gemini-3.8-flash price dropped 40.7% vs 7-day MA. Current: $0.12140/1M.
  🟢 [DROP]  Model qwen/qwen3.7-flash price dropped 58.5% vs 7-day MA. Current: $0.01195/1M.
  🟢 [DROP]  Model google/gemini-3.1-flash-lite price dropped 56.5% vs 7-day MA. Current: $0.04084/1M.
  🟢 [DROP]  Model google/gemini-2.5-flash-lite price dropped 58.1% vs 7-day MA. Current: $0.01604/1M.
  💡 [TIP]   Model deepseek/deepseek-v4-flash-0731 ($0.01169/1M) is cheaper than configured default openai/gpt-5.6-luna.
==========================================================================

And later I realize that my adult 😉 choices for opting for Zero Data Retention (ZDR) 👮 by adding argument --zdr in the
lovely TUI CLI terminal or whatever agents do over MCP and json keys, to learn that the previous winner, requires my
prompts to train it's model :

qwen/qwen3.7-flash                 $0.01195      $0.02879     -58.5%    
    ↳ advertised: $0.0300 in / $0.1300 out /1M  |  policy **(ZDR): unroutable**

Important Note : this is actual real data as of Sept 19th 2026 and the ZDR enforcement, depends on the provider level, not the model name which we can talk more in another release.


🌟 Highlights & Core Features

1. 🧠 Pricing Engine v2: The 3-Tier Model

Anticharon no longer looks at a single "listed" price. It now evaluates the market through a sophisticated 3-tier lens:

  • 🏷️ Advertised Rates: The baseline manufacturer/provider listed price.
  • ⚡ Effective Cache-Aware Rates: Real-world prices weighted by your actual prompt-caching hit rates. (Because paying for a 95% cached Anthropic prompt shouldn't be calculated at the 0% flat rate!)
  • 🔒 Zero Data Retention (ZDR) Rates: Strict policy-compliant prices. When you use the --zdr flag, the engine routes around non-compliant providers and surfaces the true cost of privacy.

2. 📅 28-Day Historical Backfill & Intelligence

Why guess tomorrow's price when you can measure last month's?

  • Anticharon now backfills 28 days of historical pricing data directly from /stats/effective-pricing.
  • Graceful degradation ensures that newly listed models (🌱 NEWLY_TRACKED) are still evaluated safely without hallucinated data.
  • Empowers the Analytical Intelligence profiles (🛡️ STABLE, ⚡ VOLATILE, 📈 PROMO_ENDED) with deep, empirical foundations.

3. 🛡️ Pre-Flight Advisory Auditor

As we prepare for the public stage, we've integrated a rigorous, fully automated Advisory Auditor agent into the release pipeline:

  • 📜 100% Permissive Licenses: Verified via pip-licenses.
  • 🦠 Zero Known Vulnerabilities: Scanned with pip-audit.
  • 🔑 Zero Leaked Secrets: Full git history scanned via gitleaks detect --redact.
  • 📂 Repository Exposure Review: Explicit human-in-the-loop validation of exposed assets (git ls-files).

4. 🧪 Deterministic Behavior-Based Testing

We evolved our testing directives to guarantee reliability without external network flakiness.

  • Over 160 offline, deterministic tests proving parsing, normalization, and failure degradation.
  • Real-world trimmed JSON payloads (like gpt-5.6-luna) used as fixtures to ensure API schema changes are caught before they break your agents.

🛠️ Deep Dive: The PE2 Validation Gauntlet

This release survived an independent 6-round audit from our Reviewer Agents. Key wins include:

  • PE2-001: Unconstrained effective prices and ZDR policy prices no longer artificially collapse together. You always get an apples-to-apples comparison.
  • PE2-002: Missing or partial provider pricing no longer fabricates a $0 endpoint.
  • PE2-003: Policy-unknown endpoints degrade gracefully instead of being falsely reported as confirmed non-compliant.
  • PE2-006: Ironclad network failure paths ensuring timeouts or HTTP errors degrade to safe, documented empty states instead of crashing your upstream pipelines.

🤝 Co-Authored By The Team

This release was a masterclass in human-agent collaboration. The architectural shift, meticulous regression testing, and release audits were driven in tandem by the multi-agent ensemble:

  • Páris Piedade Neto
  • Claude Sonnet 5
  • Codex
  • Antigravity

Ready to optimize your agents? Run uv run anticharon check and watch the new engine spin up!

v0.4.3 — CLI Help Subcommand & Ergonomics

Choose a tag to compare

@parisneto parisneto released this 11 Sep 00:19

Release Summary

  • Ergonomic help Subcommand (src/anticharon/cli.py):
    • Added native anticharon help subcommand displaying top-level help with exit code 0, resolving issue #1.
    • Added target subcommand help routing (e.g. anticharon help run, anticharon help model, and nested anticharon help model discover).
    • Added clean stderr error messaging and standard exit code 2 when an unknown help target is requested.
  • Automated Validation Suite Expansion (tests/run_tests.py):
    • Added automated unit test (test_cli_help_subcommand) covering top-level help, subcommand help, nested subcommand help, and unknown target error routing (expanding test suite to 12/12 passing in <1s).
  • CLI Specification Sync (docs/specs/spec_v1_anticharon.md):
    • Documented the anticharon help command and nested target options in Section 7.

v0.4.2 — Pre-Public Launch - CI Automation, Community Templates & TraceLab Alignment

Choose a tag to compare

@parisneto parisneto released this 11 Sep 00:15

Summary of v0.4.2

  • GitHub Actions CI: Headless test runner on every Push & PR.
  • Community Templates: Bug report, feature request, PR template.
  • TraceLab Empirical Alignment: UW SyFi coding agent token ratio parity (99.71% in / 0.29% out).
  • Diagnostic Telemetry: Enhanced system diagnostics in `anticharon test`.

This is a pre-public release for selected beta testers, with complete functionality, for testing. There is some backlog of upgrades and new features before turning the repo public.

socia_spike