quil

module
v1.44.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2026 License: MIT

README

Quil

The persistent workflow orchestrator for AI-native development.

Go Platform MCP


A terminal multiplexer built for developers who orchestrate 5–10 sessions per project across AI assistants, build watchers, webhook tunnels, and SSH connections. Unlike tmux, Quil understands projects and typed panes: it persists your entire workspace across reboots, auto-resumes AI conversations by session id, and lets your AI assistant drive your terminal over MCP.

Type quil after a reboot — every tab, pane, working directory, layout split, and AI conversation is right where you left it.

Quil restoring tabs, panes, and Claude Code sessions after a reboot

See it

Survives a full reboot AI drives your terminal
Panes and AI sessions restoring after reboot Claude Code talking to the Quil MCP server
Panes, working dirs, and AI sessions snap back in ~30s. Expose Quil over MCP — agents list panes, read output, send keys.
Many projects, one window Typed panes
Focus mode across a dozen project tabs Claude Code pane setup dialog with directory browser and toggles
Focus mode + a dozen project tabs. Per-type setup: dir browser, resume strategy, permission toggles.
Resize with the mouse Right-click pane menu
Dragging a split border with the mouse to resize neighboring panes Right-click context menu with per-pane actions and the target pane highlighted
Drag any split border — nested panes clamp to minimums, PTYs see one resize on release. Per-pane actions under the cursor: history, notes, lazygit, attention pin, restart, close.
Command palette: jump anywhere …and run anything
Command palette showing Go to pane and Tabs sections for cross-workspace navigation Command palette Pane section listing actions with their keybindings
Alt+Shift+P fuzzy-finds every pane and tab — navigation grouped at the top. Every action grouped below, each showing its keybinding; type to filter instantly.
…and search inside every pane Jump to the match
Command palette with a query showing matching commands and a Found in panes section listing panes whose scrollback contains the text Found in panes results with per-pane match counts and a preview line of the most recent match
Start typing and the palette also searches every loaded pane's scrollback — match counts + a preview under Found in panes. Enter on a pane match jumps straight to it. Searches loaded panes; lazily-restored panes appear once you open them.

Install

Linux / macOS — one-line install (detects OS+arch, verifies SHA-256):

curl -sSfL https://raw.githubusercontent.com/artyomsv/quil/master/scripts/install.sh | sh

Windows — download quil-windows-amd64.zip from Releases, extract anywhere on PATH.

Go users:

go install github.com/artyomsv/quil/cmd/quil@latest
go install github.com/artyomsv/quil/cmd/quild@latest

Full install options + build-from-source — see docs/installation.md.

Quick start

quil          # launches the TUI, auto-starts the daemon

Five keys to remember:

Key Action
F1 Menu — Settings, Plugins, Memory, log viewers
Ctrl+N New typed pane (Claude Code, OpenCode, shell, …)
Ctrl+T New tab
Ctrl+W Close active pane
Ctrl+Q Quit (workspace persists)

That's enough to start. See docs/quick-start.md for the first-launch walkthrough and docs/keybindings.md for the full keymap.

If anything ever hangs: quil restart recovers the daemon (escalating stop → fresh start → tabs restored from the last snapshot), and Alt+R restarts a single stuck pane in place with its AI session resumed.

Let your AI assistant drive Quil

Add this to your AI client's MCP config (Claude Desktop, Claude Code, Cursor, VS Code Copilot):

{
  "mcpServers": {
    "quil": {
      "command": "quil",
      "args": ["mcp"]
    }
  }
}

Restart the client. The AI can now list_panes, read_pane_output, send_to_pane, watch_notifications, screenshot_pane, and 12 more tools. Read the build pane and react to errors without copy-paste.

Full guide: docs/mcp.md.

Built-in integrations

Typed panes ship for the tools developers run all day. Each opens from Ctrl+N; the ones that wrap an external binary appear only when that binary is on PATH (greyed with an install link otherwise).

Integration What it is
Terminal Your system shell (bash/zsh/PowerShell/fish) with live working-directory tracking.
Claude Code AI coding session that resumes the exact conversation by session id across reboots.
OpenCode AI coding session (opencode) with the same per-pane session resume.
lazygit Git TUI (lazygit) for the repo near the pane — also a per-tab Alt+G overlay.
k9s Kubernetes cluster TUI (k9s) with a context picker sourced from your kubeconfig.
lazysql Database TUI (lazysql) for MySQL, PostgreSQL, SQLite, and MSSQL.
SSH Persistent SSH session that re-runs the same command (host, port, forwards) on restart.
Stripe CLI stripe listen webhook tunnel that restores its forward URL and surfaces the signing secret.

Define your own pane types in TOML — see the plugin reference.

Documentation

Topic Doc
Installation installation.md
First launch quick-start.md
All features features.md
Keybindings keybindings.md
Configuration configuration.md
MCP (AI integration) mcp.md
Custom plugins plugin-reference.md
Troubleshooting troubleshooting.md
Architecture (24 ADRs) architecture.md
Roadmap roadmap.md

The full doc index lives at docs/README.md.

Contributing

See CONTRIBUTING.md for branch / commit conventions and the development workflow. Bug reports and PRs welcome.

License

MIT — Copyright (c) 2026 Artjoms Stukans

The Windows build bundles Microsoft's MIT-licensed OpenConsole (OpenConsole.exe + conpty.dll) to host terminal panes correctly on Windows 10. See THIRD_PARTY_LICENSES.md for full third-party attribution.

Directories

Path Synopsis
cmd
quil command
quild command
internal
claudehook
Package claudehook manages Claude Code's multi-event hook for Quil.
Package claudehook manages Claude Code's multi-event hook for Quil.
claudesessions
Package claudesessions enumerates the Claude Code sessions recorded for a working directory.
Package claudesessions enumerates the Claude Code sessions recorded for a working directory.
gitdiscover
Package gitdiscover finds git repositories near a directory: the enclosing repo (upward walk, same discovery rule as git itself) and immediate sub-repositories (one level down).
Package gitdiscover finds git repositories near a directory: the enclosing repo (upward walk, same discovery rule as git itself) and immediate sub-repositories (one level down).
hookevents
Package hookevents defines the wire format and ingest pipeline for notifications sourced from Claude Code and OpenCode hooks.
Package hookevents defines the wire format and ingest pipeline for notifications sourced from Claude Code and OpenCode hooks.
ipc
kubediscover
Package kubediscover enumerates kube contexts from the kubeconfig file(s) referenced by KUBECONFIG (OS-list-separated) or ~/.kube/config.
Package kubediscover enumerates kube contexts from the kubeconfig file(s) referenced by KUBECONFIG (OS-list-separated) or ~/.kube/config.
logger
Package logger provides a leveled logger backed by Go's stdlib slog (Go 1.21+).
Package logger provides a leveled logger backed by Go's stdlib slog (Go 1.21+).
memreport
Package memreport collects per-pane memory snapshots for the daemon and exposes a human-readable formatter used by the TUI, status bar, and MCP tools.
Package memreport collects per-pane memory snapshots for the daemon and exposes a human-readable formatter used by the TUI, status bar, and MCP tools.
opencodehook
Package opencodehook manages OpenCode's plugin-based session-id tracker for Quil.
Package opencodehook manages OpenCode's plugin-based session-id tracker for Quil.
panehistory
Package panehistory stores and serves per-pane user-input history.
Package panehistory stores and serves per-pane user-input history.
pty
pty/winconpty
Package conpty implements Windows Console Pseudo-terminal support.
Package conpty implements Windows Console Pseudo-terminal support.
remoteinstall
Package remoteinstall provisions the quil binaries on a remote host over an existing ssh connection: probe what the host is, fetch the matching release locally, verify it, and stream it into a small POSIX install script.
Package remoteinstall provisions the quil binaries on a remote host over an existing ssh connection: probe what the host is, fetch the matching release locally, verify it, and stream it into a small POSIX install script.
transport
Package transport supplies the connection backends a quil client can use to reach a daemon: the local Unix socket, or an SSH channel to another host.
Package transport supplies the connection backends a quil client can use to reach a daemon: the local Unix socket, or an SSH channel to another host.
tui
update
Package update implements Quil's auto-update pipeline: a GitHub release checker, a download/verify/stage step, and the small state files shared between daemon (writer of state.json) and TUI (writer of notified.json).
Package update implements Quil's auto-update pipeline: a GitHub release checker, a download/verify/stage step, and the small state files shared between daemon (writer of state.json) and TUI (writer of notified.json).
version
Package version is the single source of truth for the running binary's version string.
Package version is the single source of truth for the running binary's version string.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL