VS Code

Use Nib inside VS Code and editors built on it, with edits reviewed in the diff editor, context from your selection and diagnostics, and native approval prompts.

The Nib extension puts the agent in a VS Code panel. It's a client of the local Nib daemon, so it shares sessions with the nib CLI: start in the editor, continue in the terminal, or the other way round. The desktop app runs a daemon of its own; see How it finds the daemon to share its sessions too.

The extension goes live on the VS Code Marketplace and Open VSX with the first public release.

Requirements

  • VS Code 1.105 or later, or an editor built on VS Code.
  • A trusted workspace. The extension doesn't run in Restricted Mode.
  • A model provider configured in Nib, or a provider key in the environment.

Install

Install the extension

In VS Code, open the Extensions view, search for Nib (publisher nibapp) and choose Install. Or run:

code --install-extension nibapp.nib-vscode

Editors built on VS Code that install from Open VSX find it under the same name. Without access to either marketplace, download nib-vscode-<version>.vsix from the latest release and choose … → Install from VSIX… in the Extensions view.

Open Nib

Click the Nib icon in the activity bar, or press ⌃⌘P (Shift+Alt+P).

What you get

  • The Nib panel, in the activity bar or in an editor tab (Nib: Open in New Tab): this workspace's sessions, a streaming transcript with tool calls, approvals, questions, MCP servers' requests for input and budget pauses, and the mode, model and effort pickers.
  • Edits reviewed in the diff editor. When Nib asks to edit a file, the proposal opens beside the file. Accept (⌘↵) or Reject (⌘⌫) from the editor title. Finished changes can be reopened from the transcript and reverted.
  • Context from your editor. Your selection is offered with your next message. ⌥K adds it as a mention like @src/app.ts#L10-20. @ mentions files: a small text file, or one with unsaved changes, goes with your message, and anything else (an image, a PDF, a large file) as a reference Nib opens itself. Nib: Fix Problems in This File sends the file's diagnostics.
  • Native prompts. When the panel is hidden, approvals, questions and plan reviews also appear as VS Code notifications and quick picks.
  • Status bar. Shows the daemon connection and whether a session is running or waiting for you.
  • Fork and rename. Fork Session opens a copy of the session (the conversation so far, the same settings) in its place, and Rename Session changes its name. Both are in the panel's … menu and the command palette.
  • Terminal handoff. Nib: Continue Session in Terminal opens the session in the nib terminal UI. nib running in this window's integrated terminal sees your selection in the editor.

Keyboard shortcuts

CommandmacOSWindows / Linux
Open Nib⌃⌘PShift+Alt+P
New session⌘⇧⎋Shift+Alt+N
Add selection to chat⌥KAlt+K
Accept / reject proposal (diff editor)⌘↵ / ⌘⌫Ctrl+Enter / Ctrl+Backspace
Respond to the pending request⌘⌥YShift+Alt+Y
Switch permission mode (in the composer)⇧⇥Shift+Tab
While a turn runs: send into it / queue for after it (in the composer)↵ / ⌘↵Enter / Ctrl+Enter

Other commands in the Nib category: New Session, Show Sessions, Add File to Chat, Stop the Running Turn, Revert This Change and Reconnect to Daemon.

Settings

SettingDefaultMeaning
nib.languageThe extension's language, one of those it speaks; empty follows VS Code's display language
nib.daemon.urlConnect to this daemon instead of finding one
nib.daemon.pathPath to a nib-daemon executable to start
nib.daemon.dataDir~/.nibData directory for a daemon the extension starts
nib.permissions.nativePromptswhenHiddenShow approvals as VS Code notifications: always, whenHidden or never
nib.diffs.reviewEditstrueOpen proposed edits in the diff editor for review
nib.context.shareSelectiontrueOffer your editor selection with the next message
nib.terminal.bridgetrueLet nib in integrated terminals talk to this window

How it finds the daemon

The extension connects, in order, to:

  1. The daemon at nib.daemon.url, if set.
  2. A daemon that's already running for the extension's data directory (nib.daemon.dataDir, by default the CLI's ~/.nib), found through its daemon.json. The desktop app's daemon keeps its data in the app's own folder, so to use the app's sessions, set nib.daemon.dataDir to that folder.
  3. A daemon it starts itself: nib.daemon.path, then the desktop app's bundled nib-daemon, then nib-daemon on your PATH. A daemon it started stops when the window closes.

The terminal bridge

nib in an integrated terminal reaches VS Code over a WebSocket on 127.0.0.1, with a random port and a random token for each window. The address and token are passed only to that window's terminals through environment variables, never written to disk. The token is checked in constant time, and any request from a browser (one with an Origin header) is refused. Turn the bridge off with nib.terminal.bridge.

Next

On this page