Skip to content

Releases

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 09 Nov 11:56

New

  • Add --web-search and --web-fetch to chat for Straitly's hosted tools. The
    provider runs them and returns a finished answer, so no tool loop is needed.
  • Add a per-provider web tool map. Straitly is enabled; every other preset and custom
    endpoint fails with a clear error before any request. callm raw can still send a
    provider's own tool format.
  • Report sources separately from the answer: text and streaming output list them on
    stderr, leaving stdout answer-only; --result-json gains an additive sources
    array; --json keeps the original annotations.

Changed

  • Completion validation accepts web tool records only when the matching request
    enabled web tools and the answer finished. Other tool calls and a tool_calls
    finish reason still fail.
  • The agent skill marks web tools as paid: agents must get explicit user confirmation
    before each use and must not enable them by default in scripts or pipelines.
  • Release notes are now published from the tagged version's CHANGELOG.md section,
    and a release fails if that section is missing.

Cost and known limits

  • Each search or fetch is billed on top of tokens, and the model chooses how many to
    run. --stats, --json and --result-json report the total the provider charged.
  • Straitly did not apply --schema when web tools were on (three models tested). Ask
    for JSON in the prompt and use --validate-schema FILE; failed validations are billed.
  • Sources are provider-reported and can include pages the answer did not use.

Maintenance

  • Keep local development audit records out of version control and remove public
    documentation links to them. Preserve local copies for development use.

What's Changed

  • Add Straitly hosted web search and fetch (v0.11.0) by @steamvogue in #1

New Contributors

Full Changelog: v0.10.0...v0.11.0

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 12:37
  • Add regular-file prompt/system inputs, raw --body-file FILE|-, and a combined
    64 MiB request limit with a lower --max-input-bytes override. Raw bodies now
    require one valid JSON value and reject extra/conflicting body arguments.

  • Add --schema provider constraints plus offline JSON Schema validation, and
    --validate-schema for local-only checks. Buffer and validate before publishing;
    block external schema references. Builds now use pinned Go modules for validation.
    OpenRouter schema requests require provider parameter support; local validation
    remains mandatory even after a successful API response.

  • Add strict, versioned --result-json status/answer/model/finish/refusal/usage/timing
    envelopes, including request/completion/schema errors. Keep original --json.

  • Add an optional Python mini harness with sequential manifests, atomic artifacts,
    hashes/journal/resume and one call per step. Test the harness against localhost
    mocks in CI; no automatic retries, repairs or model-controlled tools.

  • Make live tests free-only: verify all catalog prices are zero before at most two
    explicit OpenRouter :free calls, with no paid fallback. Record a separate
    24-call free-model evaluation; leave production provider/model defaults unchanged.

  • Remove the Go race runtime's repeated one-second exit delay from CLI fixture
    subprocesses while retaining detector settings, keeping the expanded CI suite
    within its existing 60-second timeout.

  • Reject truncated, refused, filtered, tool-dependent and empty text completions.
    Add --strict for terminal-reason enforcement (including JSON), and
    --allow-empty for intentionally empty answers. Plain --json retains diagnostic
    envelope semantics. Partial streamed output can precede a failure.

  • Preserve literal <think> content by default; add explicit --parse-think.
    Propagate answer/reasoning/statistics/raw/info/table/help/version write errors,
    including renderer short writes and flush failures.

  • Include Anthropic cache reads and cache creation in processed-input statistics
    without adding cache categories again to compatible-provider totals.

  • Add bounded model profiles for native Claude adaptive thinking/effort and known
    GPT-6 reasoning, sampling and token-limit parameters. Keep provider/model defaults;
    explicit caps remain unchanged. Legacy/manual and adaptive effort can consume
    different amounts of reasoning; evaluate the new behavior on your workload.

  • Reject native Anthropic editor exports with native-adapter guidance; retain
    table and lossless JSON catalogs. Improve redacted missing-key diagnostics.

  • Test supported Go 1.26/1.27 patches in CI; build releases with Go 1.27.2.
    Keep the Go 1.22 module language minimum.

  • Correct provider-specific examples and add guarded JSON publication. Free-only
    live tests require valid answer/usage/finish metadata and zero reported cost.

  • Validate repairs with unit/local mock tests and synthetic fixtures. Paid provider
    generation and editor imports were not executed; free-model evaluations do not
    establish compatibility with direct paid providers.

Download the archive for your platform and verify it with checksums.txt. The CLI is a standalone binary; the optional mini harness requires Python 3 on Linux/macOS.

Full Changelog: v0.9.0...v0.10.0

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 09:42

Full Changelog: v0.8.0...v0.9.0

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 09:24

Full Changelog: v0.7.1...v0.8.0

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 09 Sep 18:06

Full Changelog: v0.7.0...v0.7.1

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 17:54

Full Changelog: v0.6.0...v0.7.0

callm v0.6.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 09:37

Kimi Code subscribers can now select the coding API with --kimi and KIMI_API_KEY. The preset uses https://api.kimi.com/coding/v1 and defaults to kimi-for-coding.

export KIMI_API_KEY="your-kimi-code-key"
callm --kimi "Review this Go function"
  • Supports chat, SSE streaming, models, info, and raw requests through the OpenAI-compatible client, with existing key, URL, model, and timeout overrides.
  • Alias change: --kimi previously selected Moonshot. Use --ms or --moonshot with MOONSHOT_API_KEY for the separate pay-as-you-go Moonshot API.
  • Subscription statistics show server-returned usage and cost only; no per-call subscription price is inferred.
  • Updated CLI help, README, examples, and bundled agent skill.

Validation: local mock tests, go vet, ShellCheck, and actionlint passed. GitHub CI passed, including the Linux amd64 race detector and builds for Linux/macOS amd64 and arm64, and Windows amd64. Live subscription access was not tested.

callm v0.5.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 07:43
  • All API requests now identify the project with the default User-Agent
    CallM (Call-LLM; +https://github.com/steamvogue/callm).
  • Added --user-agent to chat, models, info, and raw commands, with
    CALLM_USER_AGENT as the environment/configuration-file default override.
    Explicit flags win; an empty environment value keeps the project default.
    --user-agent "" omits the header; control characters are rejected.
  • Updated CLI help, README examples, and agent skills.

Validation: local mock HTTP tests cover defaults, overrides, omission, and invalid values across all API commands and both streaming protocols; catalog pagination is also checked. Existing regression probes and go vet passed.

callm v0.4.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 07:23
  • Added OrcaRouter with --orca, ORCA_API_KEY, base URL
    https://api.orcarouter.ai/v1, and default model orcarouter/auto.
    --or remains OpenRouter. All existing timeout defaults and overrides apply.
  • Supports chat, SSE streaming, models, info, raw requests, and --orca --claude.
    --effort passes OrcaRouter’s reasoning_effort; --thinking-budget rejects
    with guidance to use effort instead. Model capabilities remain provider-dependent.
  • OrcaRouter --stats requests billed cost through X-OrcaRouter-Include-Cost
    and reads usage.cost_usd, including streaming usage.
  • Updated CLI help, README, agent skill, and optional live-test provider list.

Validation: local mock API tests, 91 regression probe scenarios, go vet, actionlint, and ShellCheck passed. No billed OrcaRouter inference was performed.

callm v0.3.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 19:07

This release fixes stalled calls, dropped input, silently ignored options, and
misleading success results across chat, streaming, model discovery, and raw requests.

Timeouts and input

  • All API calls default to a 300-second total timeout. --timeout accepts
    seconds or durations (600, 10m); 0 disables it.
  • Added --header-timeout and streaming chat --idle-timeout, both inheriting
    --timeout unless explicitly overridden. Zero disables each selected limit.
  • Added independent --stdin-timeout (default 300 seconds) and --no-stdin.
    Pipes are read through EOF on all platforms, including delayed producers;
    cancellation interrupts both input and HTTP waits.
  • Bound input files/stdin/buffered responses to 64 MiB and SSE events to 8 MiB.

Correctness and provider support

  • Parse full SSE events, reject malformed or truncated streams, and stop Anthropic
    streams immediately at message_stop. HTTP and API errors return failure.
  • Honor configured clients and endpoint overrides consistently. Follow Anthropic
    model catalog pagination under one deadline and detect repeated cursors.
  • Update Claude defaults to claude-sonnet-4-6 directly and
    anthropic/claude-sonnet-4.6 through Straitly/OpenRouter.
  • Convert Anthropic images correctly, preserve top-p, validate thinking budgets,
    and preserve explicit token caps. Unsupported JSON-object requests fail explicitly.
  • Apply reasoning display controls to both output modes. Preserve original provider
    JSON and large numbers; --json --stats retains separate stderr statistics.
  • Request streaming usage for --stats; handle string costs and unknown usage,
    prices, and context sizes without reporting missing data as zero.
  • Accept provider flags before subcommands and honor --stream=false. Reject
    malformed numbers, conflicting flags, and unsupported provider combinations.
    Normalize token limits for OpenAI o-series models.

Compatibility changes

  • Missing provider keys no longer fall back to another provider's credentials.
    Use the selected provider's key, CALLM_API_KEY, or an explicit key override.
    Cross-origin redirects are rejected before credentials reach the destination.
  • Streaming and reasoning display default on only when stdout is a terminal.
    Reasoning goes to stderr; final answers go to stdout.
  • Automation relying on incomplete streams, silently dropped settings, or API
    errors returning success must now handle nonzero exit codes.

Documentation and validation

  • Synchronize CLI/subcommand help, README, examples, and the callm agent skill with
    current options, aliases, defaults, and configuration precedence. Add a README/help
    consistency test and documented maintenance rules.
  • Add mock regression coverage and 91 local CLI scenarios; improve live-test
    assertions and expose make test-race, enabled in Linux amd64 CI.
  • Release archives cover Linux amd64/arm64, macOS amd64/arm64, and Windows amd64,
    with SHA256 checksums. Mock validation does not establish live provider generation
    quality, billing, or account-specific model availability.