Guide
Install it, point it at your machine, and extend it.
agentglass is a desktop app with its own server bundled inside.
There is nothing to run in a terminal and no port to open in a browser.
Getting it running
Take the installer for your platformSix files on the
release. Linux gets an AppImage or a .deb; macOS has a
separate build for Apple silicon and Intel; Windows is an NSIS
.exe. The desktop builds are attested —
gh attestation verify <file> --repo SirAllap/agentglass names the commit
and the workflow that produced yours.
Launch it. That is the installThe cockpit opens with the
server inside it. On first open the transcript scanner has already read
~/.claude/projects, so every Claude Code session on the machine is
listed with no wiring at all.
Wire the hooks, once, if you want liveThe scanner shows
history; the hooks add live streaming and PreToolUse gating — the hold.
Settings ▸ Hooks writes them into
~/.claude/settings.json and takes them out again, and says whether they are
in right now.
Pair the phone, if you want the queue with youTurn on
remote access on the computer, scan the code from the Android app, type the six
digits, accept on the desktop. It pairs over your own wifi: no account, and
nobody's server in between.
What it expects to find
It drives the tools you already have rather than bundling its own, so the
list is about what each feature shells out to — and what quietly stands down
when it is missing. Settings ▸
Requirements checks every one of these on your machine and says what breaks
without each.
gitneededSource control, file changes, pull requests,
worktrees, and deciding where the terminal opens.
Claude Code CLIneededThe chat panel runs claude.
Without it sessions still appear — the scanner reads the transcripts either
way — you just cannot chat from the app.
Python 3neededThe hook forwarder.
tmuxper featureChats as live panes, your tmux windows as
tabs, theme sync.
GitHub CLIper featureThe pull-requests panel — and logged
in, which is the step people miss.
Dockerper featureContainers, images, volumes, logs.
Plugins
A plugin is a program somebody else wrote that watches or drives agentglass
over HTTP. It is a folder with a plugin.json, and installing it, reading
what it asks for, and switching it on are three separate acts you perform in
Settings ▸ Plugins.
Nothing runs at install. When you enable one, the server mints a token at the
scope you granted and starts the entrypoint as its
own process, with exactly four variables in its environment: PATH,
HOME, AGENTGLASS_URL and AGENTGLASS_READ_TOKEN. Nothing is
loaded into the server or the desktop window. Disabling it kills the process and
revokes the token; tokens live in memory and are never written to disk.
A plugin can also draw: a panel in the Plugins view, a page in Settings, notes
in a pull request and a button in its header. It sends what to show as data, and agentglass draws it
with its own parts. Browse the plugins.
readAlmost every GET route, including /stream: live output, costs,
diffs, pull requests, the board. Writes nothing through the app's API, and cannot read another plugin's settings or
screen. The plugin itself runs as you: the scope limits its token, not the process.
answerEverything read gets, plus replying to a session already
running. It cannot release a gate.
fullEverything this machine can do: a terminal, git writes,
Docker, merging pull requests, installing other plugins.
The manifest is a request, not a grant: you see the scope and decide whether
to enable it at all. A plugin cannot get full by writing "full" and
being believed.
Finding one
A catalogue is a plain JSON file at an https:// URL, fetched fresh every
time you browse it. It is a list, not a registry — nothing in it is cached as
trustworthy between reads, and a catalogue that is unreachable or malformed is
shown as exactly that, never as an empty list.
{
"name": "community-plugins",
"owner": "someone",
"plugins": [{
"id": "someone.hello-stream",
"source": { "kind": "git", "url": "https://example.com/someone/hello-stream.git" },
"description": "Writes a line to its log when an agent finishes.",
"categories": ["monitoring"]
}]
}
Full detail in PLUGINS.md
and EXTENDING.md.