Your agent works in your terminal.You keep the keyboard.

Conn is a terminal you share with the agent you already use. It sees the screen you see, asks before it types, and lets go the moment you touch a key.

$brew install --cask eggp-dev/tap/conn

One continuous take: a real SSH login, a real Claude Code session, real Conn.

Prepared scenario on a disposable server; still moments shortened.How it was recorded →

Scroll through one real session.

01

You log in.

Your password never reaches your agent.

02

It asks to join. Once.

Until you allow it, it learns nothing about your sessions.

03

On your server, every command waits for you.

You see the exact line and what the agent says it is for.

04

It wants to delete the whole cache.

The card is waiting. So is the keyboard.

05

You say no. Then you just type.

Your keystroke takes the terminal back.

06

It reads what you did, and finishes the job.

The cache is intact, control is back with you, and there is a record.

The same take as the film above, at its recorded speed. Only the size was changed.

Three things it will not do without you.

01

It asks once before it joins.

A new agent connection shows up as a card in your window. Until you press Allow it learns nothing about your sessions: no tab list, no screen, no names. The answer belongs to that one live connection.

02

Risky commands wait for you.

The agent types; running is a separate step you can see. Deletes, force pushes and privilege changes stop for your approval with the exact line and the agent's stated intent. Inside SSH, where Conn cannot see what a command will touch, every command waits.

03

Touch a key. It's yours again.

Any keystroke takes control back at once. A pending approval is denied and the half-typed line is cleared before your input arrives, so nothing the agent started can run under your hands.

And the details that make it safe to leave open.

Passwords stay yours

Text you type without echo never reaches a snapshot, and concealed text is removed from what the agent reads.

One hand at a time

Control is a revocable lease per tab. Agents cannot take it from you or from each other; you can always take it from them.

A record of what happened

Who asked, what ran, what you approved or denied, in a timeline next to the terminal and an audit log on disk.

Your shell, not a sandbox copy

Your SSH sessions, your environment, your history. The agent works where the problem is, not in a container that resembles it.

Nothing to subscribe to

Conn runs no model and has no account. It speaks MCP to the agent client you already pay for.

Downloads you can verify

Notarized on macOS, checksums for every file, and in-app updates verified against a signing key before they install.

How it fits together

  1. 1

    Open Conn

    It is a normal terminal. Use it the way you use any other.

  2. 2

    Set up your agent

    Settings → Agents → Set up writes the MCP entry for your client. No tokens, no cloud.

  3. 3

    Ask for help

    “Look at my Conn terminal and fix the failing build.” The agent reads the screen, asks for control with a reason, and works while you watch.

Works withClaude CodeCodexCursorGitHub Copilot

Install

Free and open source. The desktop app includes the CLI your agent connects through.

macOS

Apple Silicon · signed and notarized

brew install --cask eggp-dev/tap/conn
or download the .dmg

Linux

x64 AppImage · checksum verified, installs to ~/.local

curl -fsSL https://conn.eggp.dev/install.sh | sh
or the .deb

All downloads, checksums and the signing report →

Read before you trust it

What Conn is not

Not a sandbox. Commands run as you, in your shell, and a command you approve does what it says. Conn does not defend against malicious software already running as your user. It is a preview: macOS on Apple Silicon, Windows x64 and Linux x64.

Give your agent a seat.Keep the keyboard.

$brew install --cask eggp-dev/tap/conn