Skip to content

Releases: MaorBril/agentic

v0.1.6

Choose a tag to compare

@MaorBril MaorBril released this 21 Jul 20:16
358eadc

Features

  • Auto-reload router config on direct file edits. Editing ~/.agentic/config.yaml by hand now applies to running sessions within ~2s — no restart, no manual /agentic/reload. Previously only agentic config set hot-reloaded; a hand edit left the leader serving stale config (this caused a glm52 model-id 404 storm in the field). The leader polls the file mtime; followers are covered by proxying to the leader. A bad/half-typed edit is skipped and retried on the next change, so it can never take the router down.

Full diff: #3


Running sessions keep the old router in-process — run agentic update and restart agentic sessions to pick this up.

v0.1.5

Choose a tag to compare

@MaorBril MaorBril released this 21 Jul 04:59
be7794b

Fixes

Fixes turns stalling ~60s (then client disconnect) on non-Anthropic models — most visible during subagent invocation:

  • Auto Goal classification is now bounded to 10s like tier routing. It runs inline before the real upstream call, so a stuck classifier stalled the whole turn.
  • OpenAI stream translation is ctx-aware and sends keep-alive pings while the upstream is quiet. Slow reasoning models can sit for a minute before the first token; previously zero bytes reached the client and it timed out. Client disconnects now surface as 499 instead of 200, and an empty upstream stream stays a retryable error.
  • Parallel tool calls no longer collapse when the provider omits tool_calls[].index (some xAI/OpenRouter/vLLM builds) — new calls are detected by fresh id. Also fixes split id/name headers emitting a spurious unknown_tool block.

Full diff: #2

Running sessions keep the old router in-process — restart agentic sessions (or run agentic update first) to pick this up.

v0.1.4: Fix reasoning:none breaking function tools for GPT-5-class models

Choose a tag to compare

@MaorBril MaorBril released this 20 Jul 14:20

Bug fix

Models configured with reasoning: none (e.g. gpt-5.6-sol) were failing every tool-calling request with:

API Error: 400 openai: Function tools with reasoning_effort are not supported for gpt-5.6-sol
in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'.

reasoning: none was treated the same as unset — reasoning_effort was never sent at all. GPT-5-class models require it to be explicitly "none" in the request body to accept function tools on /v1/chat/completions. Since Claude Code always sends tools, this broke every request routed to those models.

Fix: reasoning: none now explicitly sets reasoning_effort: "none" in the translated OpenAI request while still passing through sampling params (temperature/top_p).

No config changes needed — just update the binary.

Surface auto-routing decision in statusline

Choose a tag to compare

@MaorBril MaorBril released this 18 Jul 23:45

Changes

When a profile uses dynamic routing (e.g. model: auto), the statusline now shows the resolved model and tier, colored by tier:

auto→opus (deep) · sess $0.004 · day $2.10

Previously, the statusline only showed the literal alias 'auto', leaving the actual routing decision hidden until after the turn completed.

What's New

  • Route decisions table: Persists auto-router choices in the store for post-hoc visibility
  • Statusline enhancement: Displays tier/model inline with tier-based coloring (magenta/deep, cyan/standard, green/light)
  • Non-breaking: Profiles not using routing aliases see no change

Fixes & Improvements

  • Store now records which tier the classifier chose for each session
  • Statusline can display the actual model without waiting for logs or cost reports
  • Full test coverage: store round-trip + end-to-end routing persistence

Previous Release

v0.1.2 added dependency installation prompts for missing claude and clauder CLIs

v0.1.2: Prompt to install missing dependencies

Choose a tag to compare

@MaorBril MaorBril released this 18 Jul 15:53

Features

  • agentic setup, agentic doctor, and install.sh now prompt to install missing dependencies
    • If claude CLI or optional clauder is not found and stdin is a TTY, offer to run the install command with interactive y/N prompt
    • Non-interactive contexts (piped stdin, CI/sandbox) gracefully degrade to printing the install command for manual installation
    • install.sh also checks for curl early and recommends platform-specific install help if missing

Implementation

  • New cmd/deps.go: shared promptInstall() helper for interactive y/N prompts with TTY detection
  • install.sh uses /dev/tty to read prompts even when stdin is piped (crucial for curl | sh workflows), with safe fallback for sandboxes/CI without controlling terminal
  • Promoted github.com/mattn/go-isatty to direct dependency

Testing

All paths verified:

  • Interactive prompts (user accepts/declines)
  • Non-TTY stdin (piped from other commands, redirected from files)
  • No controlling terminal (edge case in some CI/sandbox setups)

agentic v0.1.1

Choose a tag to compare

@MaorBril MaorBril released this 17 Jul 23:29

Hardening from the first day of real use.

Fixed

  • Aliases hiding the model family: Claude Code picks thinking/sampling/effort config by pattern-matching the model name. Requests routed via aliases (auto, cheap) are now normalized per target model — thinking: enabledadaptive on 4.6+ families, thinking stripped for Fable, output_config.effort stripped for models that reject it, and mid-conversation system messages folded into a <system-reminder> user block for models other than Opus 4.8.
  • Upstream 4xx/5xx responses now log the actual error message (WARN upstream error … err="…").

Added

  • agentic update notifies all running instances via clauder that a restart is needed to pick up the new router.
  • Sessions launch through clauder wrap --slave (auto-approved tool set for autonomous operation); --no-clauder for a bare session.
  • agentic budget show — caps and live spend bars per scope.
  • Profiles can reference dynamic routing aliases (model: auto).

Full diff: v0.1.0...v0.1.1

agentic v0.1.0

Choose a tag to compare

@MaorBril MaorBril released this 17 Jul 22:03

First release.

agentic wraps Claude Code in a thin local router: run your sessions on Anthropic, OpenAI, xAI, or any OpenAI-compatible backend (Ollama, vLLM, OpenRouter), with per-token spend tracking, budget caps, and LLM-triaged dynamic tier routing (/model auto).

Install

curl -fsSL https://raw.githubusercontent.com/maorbril/agentic/main/install.sh | sh
agentic setup

Highlights

  • No daemon — the first session hosts the router; leader election via port binding, transparent takeover
  • Byte-faithful Anthropic passthrough (prompt caching intact) + full OpenAI-dialect translation (streaming, tool use, reasoning models)
  • Dynamic routing — a cheap classifier assigns each task to deep/standard/light tiers
  • Budgets — daily/weekly/monthly caps with hard-stop, live statusline, agentic cost
  • Terminal-first configagentic providers/models/routing/budget with live hot-reload
  • Works with clauder for cross-instance messaging and memory