Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 01:27
· 5 commits to main since this release
3680c8d

The release that makes Sensei safe to put in front of a coding agent all day,
easy to install on every OS, and calm to look at.

Works with the agents people use now

  • Codex routes through Sensei again. Codex only speaks OpenAI's Responses
    API since early 2026, and refuses to start with the wire_api = "chat" that
    setup-tools used to write. Sensei now serves /v1/responses (plus
    /compact and /input_tokens), compresses tool outputs inside it, and writes
    wire_api = "responses".
  • Claude Code's token counting works through the gateway.
    /v1/messages/count_tokens used to 404; it now counts the request as Sensei
    will actually send it, so Claude Code compacts at the right moment.
  • Agents' edits keep matching. Source code and line-numbered file views in
    tool results now pass through byte-exact: Claude Code's Edit and Codex's
    apply_patch match text exactly, and a model that never saw a comment writes
    an old_string without it. SENSEI_CODE_COMPRESSION=aggressive restores
    rewriting for people who want the extra savings.
  • The code compressor stopped corrupting code. It removed # and //
    inside string literals (return "#16a34a" became return "), left
    multi-line docstrings half-deleted, and folded runs of JavaScript const
    declarations away as if they were imports. Comment stripping is now a
    linear, string-aware scanner.
  • Errors arrive as errors. A 429 on a streaming request used to come back
    as 200 text/event-stream. Upstream status, body and rate-limit headers are
    now passed through; 429/5xx/529 and connection failures are retried (honouring
    Retry-After) before the first byte reaches the client.
  • Optional local fallback. With SENSEI_FALLBACK_ENABLED=true, a request
    the provider cannot serve is answered by Ollama, llama.cpp, LM Studio or vLLM
    instead — never silently: the response carries X-Sensei-Fallback, and the
    provider's key is never sent to the local server.
  • Current defaults: Claude Sonnet 5.5, GPT-6.1 Sol, Gemini 3.8 Flash, GLM-5.3,
    DeepSeek V4 Flash, gpt-oss on Groq; a refreshed local catalogue (Qwen3.5/3.8,
    Gemma 4, gpt-oss, Ornith). Gemini, Cohere and HuggingFace base URLs that could
    not have worked are fixed.

Honest numbers

  • Prompt-cache accounting. The ledger now records what the provider billed
    — including cache reads and writes, from JSON responses and from streams —
    and the dashboard shows the cache hit rate next to the savings. Compression
    that broke caching would show up here.

New

  • MCP proxy. List other MCP servers in ~/.sensei/mcp-servers.json (Claude
    Desktop's format) and an agent sees two tools instead of all of theirs:
    sensei_find_tools and sensei_call_tool. Results come back compressed;
    long ones arrive as a first page plus an id that sensei_retrieve pages
    through. sensei mcp --transport streamable-http serves MCP over HTTP.
  • Disassembly compression for objdump, GDB, radare2, Ghidra and IDA
    listings: opcode bytes, flow gutters and padding runs go; every address,
    mnemonic and operand stays. 42–56% fewer tokens on typical listings — useful
    behind reverse-engineering MCP servers like REA or GhidraMCP.

Install, start, update — on every OS

  • One-command installers. curl -fsSL …/install.sh | sh (macOS, Linux)
    and irm …/install.ps1 | iex (Windows) download the release binary, verify
    it against SHA256SUMS, and offer autostart and tool wiring. No Python
    needed. The README's pipx, Homebrew, Scoop and winget lines pointed at
    packages that were never published; they are gone.
  • sensei autostart on|off|status: a Run key on Windows, a LaunchAgent on
    macOS, a systemd user service (or XDG autostart) on Linux. Per-user,
    reversible, no administrator rights.
  • sensei update [--check]: asks GitHub only when you run it (or daily with
    SENSEI_UPDATE_CHECK=true), replaces binary installs in place after verifying
    the checksum, runs the Windows installer silently, and tells pip users the
    one command. The tray menu gains "Start at login" and "Check for updates".
  • The Windows installer puts sensei on the user's PATH and survives being
    run over a running copy.

A calm redesign

  • New look after dpm.lol: quiet surfaces, hairline borders, one periwinkle
    accent, gold only for the number a page is about. Light and dark,
    following the system by default. Same tokens and font as Odysync.
  • New Connections page (which tools are routed, gateway addresses, MCP) and
    a real Settings page (theme, the chat's provider, updates, autostart) in
    place of a panel whose sliders changed nothing.
  • New logo; tray and Windows icons to match.

Security

  • DLP redaction now recognises OpenAI's current key formats (sk-proj-…,
    sk-svcacct-…), which slipped through, and covers count_tokens and
    responses/compact too. It no longer rewrites thinking signatures or
    encrypted reasoning, which providers verify byte for byte.
  • A quadratic regular expression in the prose compressor, a log-injection path
    and an exception message reaching clients — all found by CodeQL — are fixed.
  • CI is green again: the frontend's vitest/coverage mismatch, the extension's
    braces advisory (via an ovsx override), the nightly benchmark push, and
    the extension's @types/vscode drift are fixed. Python 3.14 joins the matrix,
    and every installer is run for real on Windows, macOS and Linux in CI.

Install

One command, no Python needed — downloads the binary for your machine
and checks it against SHA256SUMS before installing:

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/SenseiIssei/Sensei/main/install.sh | sh
# Windows
irm https://raw.githubusercontent.com/SenseiIssei/Sensei/main/install.ps1 | iex

Or take a single file yourself:

Platform File
Windows 10/11 x64 sensei-windows-x64.exe (or .zip)
macOS (Apple silicon) sensei-macos-arm64.dmg (or .tar.gz)
macOS (Intel) sensei-macos-x86_64.dmg (or .tar.gz)
Linux x86_64 sensei-linux-x86_64.AppImage, .deb, .rpm, .tar.gz
Docker ghcr.io/senseiissei/sensei-backend:latest
VS Code sensei.vsix

Then:

sensei up            # start the server, open the web UI
sensei setup-tools   # point the AI tools on this machine at it

These builds are not code-signed

Sensei has no Apple Developer account or Windows code-signing
certificate yet, so:

  • macOS shows "cannot be opened because the developer cannot be
    verified"
    . Right-click the app and choose Open, or run
    xattr -d com.apple.quarantine /path/to/sensei.
  • Windows shows a SmartScreen warning. Click More info ->
    Run anyway
    .

Verify what you downloaded instead of trusting the warning dialog:

sha256sum -c SHA256SUMS --ignore-missing

Every artifact is also signed with Sigstore. Verify one with:

pip install sigstore
sigstore verify identity \
  --cert-identity-regexp 'https://github.com/SenseiIssei/Sensei/.*' \
  --cert-oidc-issuer https://token.actions.githubusercontent.com \
  sensei-linux-x86_64.AppImage

What's Changed

  • chore(deps): bump the actions group across 1 directory with 9 updates by @dependabot[bot] in #139
  • chore(deps): bump the frontend-minor-patch group across 1 directory with 13 updates by @dependabot[bot] in #138
  • chore(deps-dev): bump the extension-deps group across 1 directory with 4 updates by @dependabot[bot] in #131
  • chore(deps): bump the actions group with 7 updates by @dependabot[bot] in #144
  • chore(deps-dev): bump @vitest/coverage-v8 from 4.1.10 to 5.0.1 in /frontend by @dependabot[bot] in #143
  • chore(deps): bump the frontend-minor-patch group in /frontend with 3 updates by @dependabot[bot] in #142
  • chore(deps-dev): bump the extension-deps group in /extensions/vscode with 4 updates by @dependabot[bot] in #141
  • chore(deps-dev): bump vitest from 4.1.10 to 5.0.1 in /frontend in the build-tooling group across 1 directory by @dependabot[bot] in #140
  • Sensei 0.2: Codex & Claude Code done right, MCP proxy, installers, calm redesign by @SenseiIssei in #157

Full Changelog: v0.1.19...v0.2.0