Repository navigation
tenon v0.9.0
tenon v0.9.0
The editor release. tenon now runs inside your editor, with every guarantee it has in the terminal: permissions, sandbox, masking, routing, checkpoints and audit.
Site and documentation (EN/FR): https://tenon-code-eu.github.io/tenon/ · Editors: https://tenon-code-eu.github.io/tenon/editors/
New
tenon acp: an Agent Client Protocol agent
tenon acpspeaks the Agent Client Protocol over stdio. Editors launch it as a subprocess: Zed, JetBrains AI Assistant, Neovim (CodeCompanion, avante.nvim), Emacs and VS Code.- Same startup as
tenon: global and project config, signed policy, profile, allowlists, sandbox probe, routing and MCP servers. A startup refusal shows in the editor with tenon's message. - tenon's own tools do all the work. The editor never reads or writes files for tenon (
fs/*andterminal/*are not used). - Permission requests appear in the editor: Allow, Always for this session, Reject, and Allow with network for a sandboxed command. "Always for this session" never grants network. A cancelled request or a client error counts as a refusal. Consent to a non-EU provider is asked in the editor and refused by default.
- Everything sent to the editor is masked: messages, tool arguments and results, diffs, session titles, errors.
- Diffs: old text from the checkpoint, new text from the masked tool arguments, never read from disk.
- Sessions:
session/loadreplays a session,session/listlists the sessions of a folder. - Session metadata (
_meta.tenon): provider, model, jurisdiction, sandbox (with an explicitconfinedflag), profile, policy.usage_updatecarries the context size, the provider and its jurisdiction, so an editor can follow a routing fallback. - Editor MCP servers are ignored by default. With
[acp] accept_editor_mcp = true(global config only; a policy can force it off) they go through the same filters as configured servers. Editor-provided env and header values are dropped. - Audit:
SessionStartedrecords the editor (client) andtransport: "acp"; the compliance export shows the editor per session.
tenon for VS Code
- A tenon-branded extension,
tenon-code-eu.tenon, on the Visual Studio Marketplace and Open VSX (VSCodium, Cursor, Windsurf). Also attached to this release as.vsixfiles, covered by the signedSHA256SUMS. - One package per platform (macOS and Linux, arm64 and x64) with the tenon binary of this release bundled, byte for byte. A
tenon.pathsetting or atenonon thePATHalso works. - Chat panel: streamed answers, tenon's notices as thoughts, tool calls, Stop, past sessions and resume,
/skills. - Permission cards in the thread, and a notification when the panel is hidden. No automatic answer.
- Diffs open in VS Code's own diff editor, read-only.
- Attach the selection or a file to your message.
- Status bar:
tenon · <provider> · <EU|non-EU|local> · <sandboxed|not sandboxed>, in the warning colour outside the EU or when the jurisdiction is unknown. It follows routing fallbacks. - Terminal mode: Cmd+Esc / Ctrl+Esc opens the tenon terminal interface beside the editor; Cmd+Alt+K / Ctrl+Alt+K inserts
@<file>#L<a>-<b>. - English and French interface. No telemetry and no network access from the extension: only tenon talks to providers.
Known limits
- No Windows build (as for tenon).
- No images or audio in prompts.
- Editor buffers are not read; tenon reads files itself, under permission.
- On Linux without Landlock network support, commands are sandboxed for files but keep network access: the status bar still shows "sandboxed"; tenon warns at startup.
- If you set
terminal.integrated.commandsToSkipShellyourself, addtenon.insertReferenceto it.
Verify
minisign -Vm SHA256SUMS -p tenon.pub
sha256sum -c SHA256SUMS --ignore-missing