Documentation

Everything here is also inside the app: click the ✒ logo → Help.

The basics

Type Markdown in COMPOSE; PREVIEW renders it live. Pick where prompts go (F2 → Target, or Ctrl+R to cycle), then send with Ctrl+Enter or the ◉ Send button. The reply appears in the PROVIDERpane. That's the loop.

First-time setup: F2 → Setup → Providers to add an API key — or install an AI coding CLI and pick a CLI target.

Send targets: API vs CLI vs Shell

API targets call Anthropic or OpenAI directly with your key. Nothing else to install; replies stream in with token usage and cost estimates.

CLI targets run your installed AI coding CLI inside the pane — your logins, your slash commands, real interactive sessions. Quill hands your composed prompt over exactly as written. Sessions are tracked per directory and resumable later.

Shell runs your own shell in the pane and sends compose text verbatim — great for scripts.

Switching between API targets is instant; the transcript draws a “──── switched to … ────” seam so interleaved comparisons stay readable.

Getting your API key (and why it's safe in Quill)

An API key is the credential your provider issues (it looks like sk-…) to bill usage to your account. Getting one takes about a minute:

  1. Anthropic — sign in at console.anthropic.com → API keys → Create Key, and copy it.
  2. OpenAI — sign in at platform.openai.com → API keys → Create new secret key, and copy it.
  3. In Quill: F2 → Setup → Providers → paste the key → Verify. Quill checks it live against the provider and shows the models your account can use.

Why you can trust the storage. On Verify, the key goes into your OS keychain — macOS Keychain, Windows Credential Manager, or the Linux Secret Service — the same vault your system uses for Wi-Fi and browser passwords: encrypted at rest by the OS and scoped to your user account. Quill never writes it to config files, logs, or prompts; CLI sessions launch with key environment variables stripped; and every real keychain read is recorded (never the key itself) in keychain.log in your Quill folder, so you can audit access yourself. Deleting the key in Setup removes it from the keychain too.

Switching between CLIs and APIs

Switch anytime: Menu → Target picks directly, Ctrl+Rcycles. What happens depends on what you're leaving:

  • Leaving a live CLI session (CLI → CLI, or CLI → API): Quill asks first. The session ends like closing a terminal tab — and stays resumable: Provider CLI → Resume session… reattaches it later, even after restarting Quill.
  • API → API: instant, no confirmation — nothing is torn down. The transcript draws a “──── switched to … ────” seam so interleaved comparisons between providers stay readable.

Each CLI keeps its own login; each API its own key. Quill just routes your composed prompt to whichever target is active.

The Shell target — when to use it

Shell runs your own shell in the provider pane, and Ctrl+Entersends compose text to it verbatim — no Markdown processing, no provider. Use it to cd around a repo before launching a CLI there, run builds or git without leaving Quill, execute a script you just composed, or hand-launch any tool. It's ephemeral by design: closing it is closing a terminal tab.

The launch bar (directory & flags)

Starting a CLI or shell session (F4, or picking a CLI target) opens a two-step bar: the working directory to launch in (~ expands — this is the repo your CLI sees), then extra command-line flags. Enter twice keeps the defaults; Esc cancels. Set per-CLI defaults in Setup → Providers, or turn the bar off under Setup → User configuration.

The flags are the CLI's own — run claude --help or codex --help for the full list, or see the official references: Claude Code CLI docs · Codex CLI docs.

Skill mentions

With a CLI target active, type /at a word start: a popup lists that CLI's real skills and commands, narrowing as you type. Enter or Tab completes; Esc dismisses. In the preview, /name is highlighted only when it matches a real skill exactly — one character off stays plain text. Mentions are presentation only: your prompt is sent untouched.

Saving, files & history

Ctrl+Ssaves — the first save opens your system's save dialog and fills the path field for a final Enter; after that it saves silently. Ctrl+O opens files the same way. Unsaved work is guarded, and drafts autosave across restarts.

Every prompt you send — any target — is saved to History automatically. Menu → History searches by text; Enter reloads a past prompt into compose.

Copy, paste & selection

Select with the mouse in any pane — including the CLI session and its scrollback. Ctrl+C copies; a copy bubble appears near selections. Paste three ways: as-is, plain text (strips formatting and ANSI), or Markdown-smart (• → -, ☐ → checkbox). Long pastes collapse into an expandable chip so compose stays readable.

Layouts & themes

Six pane arrangements under Menu → Layout — side-by-side and stacked combinations of Compose, Preview, and the Provider session (including Compose — Provider, compose on top with the session below). Dividers drag to resize, a 50/50/50 reset rebalances, and the Markdown legend toggles with Ctrl+L. In the labels, | is a side-by-side split and is a stacked one. Dark and light themes match this website exactly.

Keyboard shortcuts

Ctrl+EnterSend to provider
Ctrl+S / Ctrl+O / Ctrl+NSave / Open / New
Ctrl+TTemplates
Ctrl+HHistory
Ctrl+RCycle send target
Ctrl+FFind (F3: next)
Ctrl+C / X / VCopy / Cut / Paste
Ctrl+Z / Ctrl+YUndo / Redo
Ctrl+LToggle legend
TabIndent / next pane
F2Menu
F4Launch provider CLI
F6Leave provider pane
F10System prompt
Ctrl+QQuit

On macOS these display with native glyphs (⌃S) inside the app. If your terminal can't report Ctrl+Enter (Apple Terminal can't), use Alt+Enter or the ◉ Send button — iTerm2, kitty, WezTerm, Ghostty, Alacritty, and Windows Terminal all report it natively.