01 Getting started
From any project root: install, set a key, open the desk. Under a minute if pip is ready.
-
Install and launch
pip install pairwit && pairwit -
Add a provider key
Project
.envor~/.pairwit/.env. Default path is Moonshot:MOONSHOT_API_KEY. Other providers use their usual env names. -
Optional project context
/initscaffolds.pairwit.md(injected every session)./reload-contextre-reads it after edits.
02 The desk
Pairwit is a terminal desk — chat stays center stage; Files, Editor, and Schedule open beside it when you need them.
- Header
- Model · provider, menu, and toggles for Files / Editor / Schedule.
- Files
- Project tree. Header Files or
Ctrl+B. - Editor
- Syntax-highlighted buffers. Open from the tree, then Editor or
Ctrl+E. - Schedule
- Later agent jobs.
/scheduleor header Schedule. - Chat
- Transcript, tool cards, and the prompt — always the main column.
Plan banner
In Plan mode a slim banner under the header reminds you mutations stay gated.
03 Panes & resizing
Side panes share space with chat through a vertical grip (┊). Chat never shrinks below a readable minimum.
- Drag
- Move
┊horizontally to grow or shrink that pane. - Double-click
- Reset that pane to its default width.
- Close
-
Files:
Ctrl+B. Editor pane:Ctrl+E. One tab:Ctrl+W.
Tip
Mouse reporting varies by terminal (iTerm2, Kitty, WezTerm, Windows Terminal). If drag feels dead, enable mouse support or try another emulator.
04 Plan / Build
Press Tab to flip modes. Explore safely, then mutate on purpose.
- Plan
- Read, reason, propose. Mutating tools stay gated.
- Build
- Full agent loop. Writes and shell still ask unless you’ve allowed them.
Typical flow: Plan the change → review the proposal → switch to Build → approve edits.
05 Chat
The prompt is where work starts. Mentions and attachments pull the repo into context.
- Enter sends. Up / Down recall prior prompts in this session.
@or/mention— fuzzy file picker into context.Ctrl+O//attachattach a file;/detachclears.EscorCtrl+Ccancels a running turn. IdleCtrl+Cquits.Ctrl+Lclears chat (blocked if editor buffers are dirty)./undo·/redo— last turn.
06 File tree
Browse the project without leaving the desk. Click a file to open it in the editor.
- Toggle with
Ctrl+Bor header Files. - On the cursor node:
nnew ·rrename ·ddelete (or right-click). - Vendor / junk dirs are filtered; source names are lightly tinted by language.
07 Editor
Multi-tab buffers with syntax highlighting. Save without leaving the agent.
-
Ctrl+Ssave ·Ctrl+Shift+Ssave as ·Ctrl+Nnew ·Ctrl+Ffind ·Ctrl+Wclose tab ·Ctrl+Efocus / close pane. -
Select lines, then
Ctrl+Shift+Lto send@path:linesinto the chat prompt. - Dirty tabs show a marker; the stats strip names the active file.
Shipping now
08 Schedule
Queue later agent work on the same desk as Files and Editor. Jobs persist under
~/.pairwit/schedules/. Auto-fire runs while Pairwit stays open — no daemon required for the beta.
- Open
/schedule, header Schedule, orCtrl+Shift+J.- Filters
- Upcoming · Due · Done · Discarded — keys
1–4. - Actions
-
nnew ·eedit ·rrun now ·ppause ·ddiscard ·Escclose. - Due input
-
ISO, relative (
+30m,+2h,+1d),tomorrow, ortonight. - Consent
- Each job keeps Plan or Build and still honors approval rules.
Note
If Pairwit is quit, due jobs wait until the next open. A background daemon is optional later — not part of this beta.
09 Approvals
bash, write_file, and edit_file pause until you decide
(default on). Prefer keeping approvals on for shared or sensitive repos.
- Once
- This call only —
1/y. - Session
- This tool for the rest of the run —
2. - Always
- Persist allow in
.pairwit.permissions—3. - Deny
- Block and continue —
n/Esc.
Rules: project .pairwit.permissions (allow: /
deny: / ask:) or ~/.pairwit/permissions.json.
Set PAIRWIT_ASK_TOOLS=0 only if you intentionally want auto-allow.
10 Sessions
Each run saves under the project’s Pairwit session directory. Resume when you return.
/sessions— pick a past session (newest first)./resume— load the latest for this project.- Starting Pairwit again in the same project can pick up the last thread.
11 Providers & models
Bring your own keys. The header always shows model · provider (and Plan when active).
-
/provider— Moonshot, OpenAI, Anthropic, OpenRouter, DeepSeek, Ollama, or custom. Missing keys get a clear message — not a silent fail. /model— switch model for the active provider.
12 Slash commands
Type a slash in the prompt, or open the palette with Ctrl+P.
/helpIn-app help/modelPick model/providerSwitch provider/mention@ file picker/sessionsLoad a past session/resumeLatest session/undo · /redoLast turn/initScaffold .pairwit.md/reload-contextRe-read .pairwit.md/attach · /detachFile attachments/scheduleToggle schedule desk13 Shortcut map
The muscle-memory map. Same keys as the header menu and palette.
TabPlan / Build@Mention fileCtrl+BToggle FilesCtrl+EFocus / close EditorCtrl+Shift+JToggle ScheduleCtrl+WClose editor tabCtrl+SSaveCtrl+Shift+SSave asCtrl+NNew fileCtrl+FFind in editorCtrl+Shift+LSelection → chatCtrl+OAttach fileCtrl+LClear chatCtrl+PCommand paletteEscCancel turn / close scheduleCtrl+CCancel turn / quit if idle┊Resize pane┊Reset pane width
Pairwit