Connecting to dev server...

Inline AI in the Code Editor

Circuitry's code editors ship with two Cursor / Copilot-style features that work directly inside the editor: ghost-text inline completion and the Cmd+K inline prompt. Both work everywhere the code editor appears — the standalone code editor, linked code editor, code-node config fields, the markdown prompt of an Agent node, the JSON config of a DataViz node, and remote files opened from a Code File node.

Inline AI is the surgical-control half of orchestrating AI in Circuitry. Use the agent chat for whole features; use Cmd+K and ghost text when you know exactly what you want changed at exactly this line. Both go through the same diff-approval surface, so nothing lands without your sign-off.

Ghost-text inline completion

As you type, a greyed-out suggestion appears at the cursor showing what the AI thinks comes next.

  • Tab — accept the entire suggestion
  • Cmd+→ (Mac) / Ctrl+→ (Windows / Linux) — accept just the next word
  • Esc — dismiss
  • Any other keystroke continues editing and discards the suggestion

When you hover the suggestion you'll see a small toolbar — ◁ 1/1 ▷ Accept Tab Accept Word ⌘→ ⋯ — that exposes the same actions.

  • What it's good at: finishing function bodies you've started, completing the next obvious statement, filling in code from a comment ("// sum the price column" → followed by working code).
  • Default model: gpt-4o-mini — cheap and fast, since this fires every ~350 ms while you type. You can change it (see Settings below).
  • Workflow-aware bonus that Cursor doesn't have: when the editor lives inside a Code node downstream of (say) a DataGrid, the completion knows the actual column names of the upstream data. Type // sum the price column and the model writes code referencing the real price field, not a guess.

Quick toggle in the editor footer

There's a one-click on/off in the editor's status bar (the same row that shows language and "Modified"). The icon is a small AI-sparkle next to a Tab arrow. Click it to silence ghost text for a few minutes while you focus, click again to bring it back. The button stays in sync with the master toggle in Settings.

Cmd+K inline prompt

Press Cmd+K (Mac) or Ctrl+K (Windows / Linux) at the cursor. A small floating box appears anchored to your cursor line. Type a natural-language instruction and the AI generates code at that location.

  • With text selected: the AI's output is staged as a diff. Accept or reject hunks the same way you would for an agent edit. ("Convert this to async / await" — review three line changes — accept.)
  • No selection: the AI inserts at the cursor. Press Esc to revert if you don't like it; otherwise the insertion sticks.
  • While streaming: a Stop button cancels the in-flight request without losing your prompt text.

Settings

Open Settings → Inline AI to configure both features.

Enable in workflow nodes

A single cross-feature toggle at the top of the panel. On by default — both ghost text and Cmd+K work inside the small Monaco editors hosted by workflow nodes (Code / Agent / DataViz / CodeFile) just like they do for full file tabs. Turn this off if AI suggestions feel intrusive on the canvas; file-tab editors keep working either way.

Enabled / disabled (per feature)

A master toggle for ghost text, and a separate one for Cmd+K. Off = nothing fires, no requests, no UI.

Model

Two options:

  • Use chat agent — the inline AI tracks whichever model the chat panel currently has selected. Switch your chat to a different agent and inline AI follows automatically. Best when you want one consistent agent across everything.
  • Use a dedicated model — pin a model independently of chat. The picker exposes every model the chat panel can use — including OpenAI / Anthropic cloud models, local LM Studio / Ollama models, Apple Intelligence (on-device), and CLI models like Claude Code. Models good for low-latency completion are flagged "fast" in the dropdown; nothing stops you from pinning Opus if you want, it just costs more and feels slower.

Defaults: ghost text uses a dedicated gpt-4o-mini (because it fires constantly); Cmd+K follows the chat agent (because it's user-initiated and infrequent).

Disabled languages / files

Two lists per feature. Don't fire in (e.g.) markdown or plaintext, or in /path/to/some/generated.ts. Useful for files where suggestions get in the way — generated code, log files, READMEs you're hand-writing.

Keyboard shortcuts

All shortcuts are reconfigurable. Open Settings → Keyboard Shortcuts, find the Inline AI category, click any binding to capture a new key combo. Defaults match Cursor's conventions:

  • Tab — accept the entire ghost-text suggestion
  • Cmd+→ / Ctrl+→ — accept just the next word of the suggestion
  • Esc — dismiss ghost text / close Cmd+K / stop streaming
  • *Alt+* — force-trigger ghost text (when it didn't appear automatically)
  • Cmd+K / Ctrl+K — open the inline prompt at the cursor / selection
  • Enter — submit the inline prompt (Shift+Enter inserts a newline)

Privacy and which model your code goes to

The dedicated-model picker shows the same model list the chat panel uses, so the privacy story is the same. To keep code on-device, pick Apple Intelligence (Mac / iPad) or any local model you've configured (LM Studio, Ollama). Cloud models route through Circuitry's server-side key injection — your API key isn't exposed to the browser, but the prompt does leave your machine. CLI models (Claude Code) talk to the CLI process you've configured locally.

The default for ghost text is gpt-4o-mini (cloud), chosen for low latency and cost.

Compared to Cursor / VS Code Copilot

FeatureCircuitry inline AICursorCopilot
Ghost-text completion
Cmd+K natural-language promptInline (Cmd+I)
Diff-accept on selection✅ (shared with agent edits)Partial
On-device model option✅ Apple Intelligence
Workflow-aware completion (knows upstream node columns)
Live editor in a graph (zoomed canvas, etc.)
Reconfigurable shortcuts

The bottom two rows — workflow-aware completion and editor-in-graph — are the things only Circuitry has, because only Circuitry connects code editors to data flows.