Skip to content

Releases: awaistechnologist/llm-sidecar

v0.5.2

Choose a tag to compare

@awaistechnologist awaistechnologist released this 13 Aug 09:15

Fixed

  • fast was picking the largest local model. The local candidate list is
    sorted largest-first and every tier took the first entry, so tier was
    ignored entirely for Ollama — "fast" selected a 19 GB 32B, the slowest model
    on the machine. Since verify, summarise, classify and extract all
    ask for the fast tier, every bulk operation was running on the biggest model
    available. Tier now maps to size locally.

Added

  • llm-sidecar models --suggest — what to pull, scored against your memory.
    The advisor could only rank models you already had, which is no help when
    you have none; that path now prints suggestions and an ollama pull line.
  • llm-sidecar models shows which models are loaded in RAM. ollama list and
    ollama ps answer different questions and the difference confuses people.

Install with: pipx install llm-sidecar

v0.5.1

Choose a tag to compare

@awaistechnologist awaistechnologist released this 13 Aug 09:15

Fixed

  • README install block could not be copy-pasted. zsh's interactive_comments
    is off in many setups, so a trailing # once, if you don't have pipx was not
    a comment — the apostrophe in "don't" opened a quote and the terminal hung on
    cmdand quote>. Copy-pasteable blocks no longer carry inline comments, and a
    test now parses every one of them in a shell configured that way.

Added

  • A troubleshooting section for command not found: pip and
    externally-managed-environment — the two things a new user hits first, and
    the reason the install instructions say pipx rather than pip.

Install with: pipx install llm-sidecar

v0.5.0

Choose a tag to compare

@awaistechnologist awaistechnologist released this 13 Aug 09:15

Install and first-run fixes. Everything in this release came from watching an
actual install fail.

Changed

  • pip install llm-sidecar now installs everything. The base package was
    httpx alone, with the daemon, search and MCP behind extras — so the default
    install produced a command whose main subcommands died with a raw
    ModuleNotFoundError. The extras still exist as no-ops so old instructions
    keep working.

Added

  • llm-sidecar service install — writes a launchd agent or systemd user unit
    so the daemon starts at login and restarts on failure. uninstall and
    status too.
  • llm-sidecar config key <KEY> --save, config budget, config show,
    config clear-key. Setting a key previously needed the daemon running and a
    curl command.
  • Python 3.14 in CI. pipx picked it by default on a real machine and nothing
    had ever tested it.

Fixed

  • service install refuses when the executable sits in ~/Documents,
    ~/Desktop or ~/Downloads. macOS keeps those behind a privacy prompt that
    background services never receive, so the agent died at startup and
    KeepAlive restarted it forever. It now explains and points at pipx.
  • The generated launchd plist sets ThrottleInterval, so a genuine crash is
    visible in the log rather than drowned by restarts.
  • config key without --save exits non-zero and says why, instead of
    reporting success for something that vanishes when the process exits.

Install with: pipx install llm-sidecar

v0.4.0 — grounded answering, dashboard, one-command setup

Choose a tag to compare

@awaistechnologist awaistechnologist released this 13 Aug 09:15

First tagged release. llm-sidecar is a local sidecar that gives every tool on your machine grounded, cited, routed AI — and never asks you which model to use.

Works with no API key at all if you have Ollama.

git clone https://github.com/awaistechnologist/llm-sidecar
cd llm-sidecar && ./install.sh && ./run.sh

What's in it

Grounded answeringanswer() searches, reads the pages, and answers from those pages only, with citations. Says "not in the sources" rather than guessing, and reports conflicts between sources.

Verification — grade claims against live evidence (supported / contradicted / unverified), each cited. Claims that snippets can't settle are automatically re-checked against full page text.

Routed inference — local Ollama, free OpenRouter, or paid, without naming a model. Every candidate is probed with a live call before use, because a catalogue entry is not a working model.

Four ways in — Python library, OpenAI-compatible HTTP daemon, MCP server (12 tools), and a CLI. Plus a dashboard: chat with per-reply cost receipts, every capability in a Tools tab, and settings.

Structured operations — summarise, classify, extract, all at temperature 0 so they're repeatable and cached.

Operational — hardware advisor (which Ollama models actually fit your RAM), usage ledger, response cache with size limits, one-command SearXNG setup.

Notable design choices

  • The daemon treats the model field as a request, not an instruction — a tool hardcoding gpt-4o gets a verified working model and never finds out.
  • Structured output is treated as a capability: a model that can't produce valid JSON is rotated away from, exactly like a rate-limited one.
  • The dashboard is one HTML file with no build step and no external requests — no CDN, no fonts, no analytics.
  • The daemon binds loopback and never returns your API key, only a masked preview.

Known limitations

Verification is only as good as retrieval. Streaming bypasses the completion cache. No request queue, so it's a single-user tool. No embeddings or cross-session memory — different product. See the README's "Honest limitations" section.

Tests

152, fully offline. Live-provider behaviour verified by hand.