Needs you
Pick up where you left off
Resume a conversation
Press Ctrl+K to jump anywhere, or + above for something new.
Press Ctrl+K to jump anywhere, or + above for something new.
A preset carries its own light or dark base. This only decides which built-in is used when no preset is chosen.
Monospace only. Each choice is a stack that exists on Windows, Mac and Linux, so a font that is not installed still lines up instead of going proportional.
Terminal size is also the +/− stepper in the bottom-right of the panel.
Every transcript your CLIs have kept, filed by the directory it belongs to, dimmed under the sessions that are actually running. Click one to resume it.
Off by default, and the limit is why: a month of work is several hundred conversations, and at that ratio the sidebar stops showing what is running and becomes a haystack with your work in it. Nothing is lost either way — Ctrl+K then ~ searches all of them, however old.
The pane owns the keyboard everywhere else — which is why tabs are Alt+1…9 and not plain digits. The palette is the one key taken from it, and Ctrl+K is readline’s kill-to-end-of-line. Turn this off to hand it back; Ctrl+Shift+P still opens the palette either way.
Claude, Codex, Gemini and the rest draw their own input box, so on Automatic the panel does not put a second one underneath. A shell draws no box, and there the panel's is the only place Run, the repeat counter and a saved draft live — so it stays. The mode pill is never hidden either way. Snippets work regardless: CLIque owns the pseudo-terminal, so an expansion is typed into the pane.
The logo keeps its own colours and never changes — the ring around it does the talking. An arc going round means working, a steady pulsing ring means finished and waiting for you, and a session that is simply idle draws nothing at all. A stopped one goes grey.
The separate dot comes back automatically wherever there is no icon to carry it — a CLI set to None, or markers turned off here — and says the same four things.
Nine panes of black text look identical, and the moment it matters is the moment after you switch. The top of the pane, the active tab and the prompt box you are typing in all take the colour. Set the colours themselves below.
Both is the icon tinted in the CLI's colour. Icon is the same shape in grey. Colour is a plain chip. None is nothing.
Type a trigger then press Tab — in clique's
prompt box or in the CLI's own input field. Placeholders:
{cwd}, {project}, {name}, and
{cursor} for where the caret ends up.
"Finished" means the pane stopped producing output. That works for any CLI without CLIque knowing anything about it, but a CLI pausing to think looks the same as one that is done — raise the delay if it fires too eagerly.
A session that has gone quiet looks exactly like a
provider that is down, and the difference is twenty minutes of
debugging your own prompt. CLIque reads the public status page for
CLIs you have open — Claude, Codex, Copilot and Cursor ship with one;
any other can be added in clis.toml. Every five minutes,
only while a session using that CLI is running, and nothing about you
is sent. This is the only request CLIque makes on its own; turn it off
and the panel never reaches the internet.
Shown on the empty pane. Blank uses this browser’s own zone, which is right unless your box lives somewhere you do not.
One URL, POSTed a small JSON body when a session starts waiting, stops on an error, finishes, or dies. ntfy, Gotify, Discord, Mattermost, Home Assistant and Uptime Kuma push monitors are all “POST some JSON here”, so this one field reaches any of them — no app, no account, no integration to configure.
Signs each request as X-CLIque-Signature so
a receiver on the open internet can tell your panel from anyone
else’s. It is never sent back to this page once saved — leave the box
blank to keep the one you have, or type a single - to
remove it.
Included in the notification so it can link back here. Only you know this — behind a tunnel the server has no reliable idea of its own public address.
One directory per line, relative to each session’s own
working directory; . is that directory itself. Nothing is
searched recursively, and only images that appeared after the
session started are listed — which is what keeps a project’s own
artwork out of it.
This is the other half of pasting a screenshot. That gets an image to an agent; this brings one back, because a terminal has no way to draw a picture.
Applied in order: both, then panel, then terminal. The terminal block is scoped to the terminal area, so you can restyle one without touching the other.
Everything in this panel is an API call, so an agent can drive it. Tokens are minted on the box — an endpoint that creates credentials would turn any other hole into permanent access.
python3 -m clique token create my-agent python3 -m clique token create readonly --read-only python3 -m clique token list python3 -m clique token revoke tk_xxxxxxxx
Then call it with Authorization: Bearer <token>.
Full reference in API.md.
GET /healthz answers without a login, so
Uptime Kuma, Gatus, Healthchecks or anything else that watches a
URL needs no credential to watch this one. Anonymously it returns
{"ok": true} and nothing more — no version, no names.
Signed in, or with a token, it adds uptime, session counts and whether
tmux is reachable.
The last few releases, newest first, in the time zone
the work happened in. Read from the same CHANGELOG.md
the repo ships, so it cannot drift.
Read the rest on GitHub
Folder-organised, CLI-agnostic coding sessions in a browser, persisted in tmux. Stdlib only — no framework, no node_modules, no build step.
Install as an app for a window of its own — no browser tabs, no URL bar. The panel is the same; the chrome is not.
Both go to the same place, and the version and browser are filled in for you — a bug report without them is a guess.
A star is the whole marketing budget. It is how anyone else finds this — the lists that catalogue tools like it sort by exactly that number.
★ Star it on GitHubFree, and staying that way. If it saved you an afternoon, this is the tip jar.