Chat & editing
Niah gives you two ways to ask for a change — a sidebar conversation and an inline edit — and reviews every result as a diff you accept or reject.
Chat
Press ⌘L / Ctrl+L to open chat. If you have
code selected, that selection is staged as context, so you can ask
"why does this break when the list is empty?" without pasting anything.
| Add selection to chat | ⌘L / Ctrl+L |
|---|---|
| New chat | ⌘⇧L / Ctrl+Shift+L |
Start a new chat when you switch topics. A conversation carries its whole history as context, so a long thread about one bug makes a later, unrelated question slower and less focused.
Ask mode and Agent mode
Plain chat answers from the context you give it. Agent mode adds tool calling: it can search the repo, read files, run commands, and apply edits on its own before reporting back. Use Agent mode when the answer requires looking around the codebase rather than reasoning about one file.
Quick Edit
Press ⌘K / Ctrl+K with the editor focused to
edit in place. An input appears at your cursor; describe the change and Niah
rewrites that region, showing the result as a diff.
Reviewing diffs
Nothing is written until you accept it. Proposed edits appear as inline diffs, and you can walk them one at a time or take them all at once.
| Action | macOS | Windows / Linux |
|---|---|---|
| Accept diff | ⌘⌥⇧Enter | Ctrl+Alt+Shift+Enter |
| Reject diff | ⌘⌥⇧Backspace | Ctrl+Alt+Shift+Backspace |
| Go to next diff | ⌘⌥⇧↓ | Ctrl+Alt+Shift+↓ |
| Go to previous diff | ⌘⌥⇧↑ | Ctrl+Alt+Shift+↑ |
| Next file with diffs | ⌘⌥⇧→ | Ctrl+Alt+Shift+→ |
| Previous file with diffs | ⌘⌥⇧← | Ctrl+Alt+Shift+← |
| Accept all diffs, all files | ⌘⇧Enter | Ctrl+Shift+Enter |
| Reject all diffs, all files | ⌘⇧Backspace | Ctrl+Shift+Backspace |
All of these are also in the Command Palette under Niah:, so you
can find them without memorizing the chords.
Navigation and other shortcuts
| Action | macOS | Windows / Linux |
|---|---|---|
| Open Agents window | ⌘⇧A | Ctrl+Shift+A |
| Go to file | ⌘P | Ctrl+P |
| Command Palette | ⌘⇧P | Ctrl+Shift+P |
| Integrated browser | ⌘⇧B | Ctrl+Shift+B |
⌘P
only — the ⌘E and ⌘T alternates are
unbound so those chords stay free.
Remapping
Every Niah command is a normal keybinding. Open
Preferences: Open Keyboard Shortcuts and search for
niah to rebind them, or edit keybindings.json
directly using the command IDs:
niah.ctrlLAction | Add selection to chat |
|---|---|
niah.cmdShiftL | New chat |
niah.ctrlKAction | Quick Edit |
niah.sidebar.open | Open chat sidebar |
niah.openAgentsWindow | Open the Agents window |
The Agents window shortcut can also be promoted to an OS-level global
shortcut by adding "systemWide": true to its entry in
keybindings.json. Only single combinations are eligible —
chords and bare modifiers are not.