opencues
Manifest valid★ 37The open standard for omnipresent AI. Claude Code, OpenCode, Gemini CLI, Shell, Chrome, DeepSeek Harness. Model-agnostic
Turn any text field into a two-way LLM channel. It reads what you write and fills what you ask: catching a slip as you type, or answering the moment you end a line with _. A drop-in for Claude Code, OpenCode, Gemini CLI, your shell, and Chrome. Model-agnostic, output you review before it sends, an open standard with no chat window.
The model comes to your cursor, both ways. Cues react to what you've already written and surface a fix or a sharper line inline, unprompted. Blanks act on demand: end a line with _ and the model fills in the rest. No chat window, no copy-paste, no context switch.
OpenCues is platform, model, and provider agnostic, engineered from the ground up to enable native inline AI.
| You type | You get |
|---|---|
| i keep having to approve every single git command | ↳ 💡 Tired of approving? /permissions allow rules like Bash(git *), or Shift+Tab to auto mode |
| ok this is a mess, let's start over on the auth stuff | ↳ 💡 Starting over? /clear wipes the conversation, CLAUDE.md stays |
| let's ship it Thursday the 19th | ↳ ⚠ the 19th is a Friday |
| we should probably go ahead and refactor this | ↳ we should refactor this |
| hey can u send me that report when u get a sec make this formal _ | Could you please send me that report at your earliest convenience? |
| hello world translate to japanese _ | こんにちは世界 |
| draft an email to my landlord asking for a rent reduction _ | (the email, written) |
| ffmpeg command to convert a video to web-ready mp4 _ | ffmpeg -i input.mov -vcodec libx264 -crf 23 -pix_fmt yuv420p -acodec aac output.mp4 |
Rows with _ are blanks: you ask, the model fills in. Rows without are cues: the model speaks up on what you wrote, no prompt. A 💡 cue knows the situation you are in and _ makes the draft the command.
Quickstart
npm install -g opencues # needs Node 22+ and git
opencues set-key cerebras csk-... # cerebras.ai — free tier, lowest latency
opencues install claude-code # or: opencode | gemini-cli | chrome | shell | dsh
claude-cues # launch — native `claude` is untouched
Full walkthrough, prerequisites, and per-host detail: docs/install.md. opencues doctor diagnoses anything that looks wrong.
Integrations
| Host | Status | Install |
|---|---|---|
| Claude Code | Available | opencues install claude-code |
| OpenCode | Available | opencues install opencode |
| Gemini CLI | Beta | opencues install gemini-cli |
| Chrome | Beta | opencues install chrome |
| Shell | Beta | opencues install shell |
| DeepSeek Harness | Beta | dsh plugin --profile web add @opencues/dsh |
Each pins its own upstream fork and never touches your native host install.
DeepSeek Harness is the exception: it has a real plugin system, so there is no
fork to pin and no OpenCues CLI step — see
integrations/dsh/README.md.
⚠️ Windows: not supported natively, run inside WSL2 (see
docs/install.md).
What you get
| Feature | What it does |
|---|---|
| Blanks | Type _ for free-form generation, translation, formatting, full rewrites, or keyword-bound system actions (volume _, weather _). |
| Sentence rewrites | Cycle a whole sentence to a different register (formal, concise, ...) seamlessly, no _ needed. |
| Word cues | Navigate to a single word and cycle a smaller LLM-suggested alternative. |
| Live actuators | volume _ reads the real level and leaves a knob you can turn: Ctrl+Alt+↑/↓ or a bare _ moves it, and the device follows. |
| Dismissing a cue | A cue that only tells you something can be silenced from its own note: _ once quiets it for a while, _ again forgets it for good. opencues dismissals lists what you forgot and turns any of it back on. |
| Session-contradiction cues (opt-in) | Flags a draft that goes against a decision made earlier in the same coding session, on any host with a transcript. |
| Ask-cues (opt-in) | Turns a vague sentence into an inline question with cyclable answers, using the assistant's own clarifying prompt. |
| Personal + ambient context (opt-in) | my email _ substitutes your real address; fluid lookups can read the page you're on. |
| Hot-reload | Every .md config picks up edits in ~2s, no restart. |
Full feature catalogue (44 concepts): docs/features/README.md.
Running a lot of these at once? opencues usage prices every LLM call your
hosts have made, across features, so the total isn't a guess.
Configuration & LLM providers
Config lives at ~/.cues/ — one OPENCUES.md for runtime settings, plus per-surface source folders. Seven providers supported; set an env key or opencues set-key and you're done.
Full reference: docs/configuration.md · docs/guides/llm-providers.md (switching provider/model, free mode, failover).
Security
OpenCues has no tool handlers or exec layer for LLM output — no MCP-tool execution, no agentic actions, no side-effect channel. Worst-case, an LLM response lands as user-visible text in the buffer you review before submitting. That single invariant is what keeps prompt injection a UX failure instead of a data-exfiltration channel, across every surface below.
23 of 27 tracked attack classes closed, 3 closed-with-caveat, 1 tracked for the future pack registry (full audit table).
| Defense | What it covers |
|---|---|
| Sandbox isolation | Third-party blank JS runs in a real V8 isolate (isolated-vm) — its own realm, own intrinsics, no sandbox-escape via constructor-chain pivots |
| Capability gates | A blank only gets network/llm/storage/secrets access if declared; secrets without a matching host binding are refused at load time |
| Resource quotas | Sliding-window caps on fetches, LLM calls, and storage writes — no polling hammer, no runaway LLM burn |
| Output sanitization | Blank output is stripped of HTML/script tags, zero-width chars, and bidi overrides before it reaches the buffer |
Check a pack before trusting it:
opencues review ./untrusted-pack/
Full threat model: docs/architecture/security-audit.md. Reporting a vulnerability: SECURITY.md.
Contributing
| What | Where |
|---|---|
| New host integration | docs/guides/adding-an-integration.md |
| New cue/blank | docs/guides/adding-a-cue-blank.md |
| Working on the reference runtime | CONTRIBUTING.md |
| New to the terms | docs/glossary.md |
Join the community — questions, feedback, and the people building alongside you. We're also part of OpenSourceIRL, a community for people building in the open.
License
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.1.1 | — | — |
| 0.1.2 | — | — |
| 0.2.17 | — | — |
| 0.2.21 | — | — |
Comments
Loading…
Similar plugins
by x5427876
Use OpenCode Zen free models in DeepSeek Harness with anonymous access or an optional API key
★ 4
↓ 682/wk
MIT
TypeScript
Oct 18, 2026
dsh plugin --profile web add dsh-opencode-freeby zilliztech
A persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.
★ 2.8k
↓ 1.4k/wk
MIT
Python
Oct 27, 2026
dsh plugin --profile agent add @zilliz/memsearch-dshby wxkingstar
在 DeepSeek Harness / Claude Code / Cursor / Codex / Gemini CLI 里直接搜索 20 个中国开放平台的 65,600+ 篇 API 文档;零配置,支持 Skill 与 DSH 原生插件。
★ 56
↓ 43/wk
MIT
TypeScript
Aug 21, 2026
dsh plugin --profile web add @wxkingstar/specfusion-dshby limccn
Give DeepSeek (text-only) models **vision** in Claude Code and Codex by routing image files to any OpenAI-compatible vision endpoint (OpenRouter, SiliconFlow, DashScope, Ollama, llama.cpp, vLLM, LM St
★ 3
↓ 56/wk
MIT
TypeScript
Sep 1, 2026
dsh plugin --profile web add @limccn/deepseek-vl-supportby 438417623wq
把 DeepSeek Harness(DSH)里能调用的所有模型,开放成本机 OpenAI / Anthropic 兼容网关,Claude Code、Cline、ZCode 等工具可直接使用,无需再填 API Key。Expose every model DSH can already call through one loopback OpenAI/Anthropic gateway, so o
★ 0
MIT
JavaScript
Oct 7, 2026
dsh plugin --profile web add dsh-model-bridgeby wang-kaopu
Use ChatGPT (Codex) and Gemini Code Assist subscriptions as DeepSeek Harness LLM providers — OAuth login in the web UI, no API keys
★ 3
↓ 16/wk
TypeScript
Aug 21, 2026
dsh plugin --profile web add @kelvinwww/dsh-oauth