shell.online

mcp
Guvenlik Denetimi
Uyari
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 99 GitHub stars
Code Uyari
  • process.env — Environment variable access in .github/workflows/deploy-app.yml
  • process.env — Environment variable access in .github/workflows/downloads.yml
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Your terminal, anywhere. Run an agent or command on your computer and use it from any browser. Developed by Pilot Protocol.

README.md

shell.online

CI
CodeQL
License: MIT

Share any terminal process in one command.

shell claude

The process stays on your machine. The CLI prints a browser link, password,
and QR code. Terminal traffic is end-to-end encrypted by default.

An agent can also observe a session through scoped MCP grants and, when explicitly enabled,
send input with host acknowledgement, human priority and duplicate protection. See
MCP access and its decryption boundary. Control is off by default.

Install

Platform Command
macOS, Linux, BSD, Solaris curl -fsSL https://shell.online/install | sh
Windows PowerShell irm https://shell.online/install.ps1 | iex
Homebrew brew tap teoslayer/shell-online https://github.com/TeoSlayer/shell.online
brew trust --tap teoslayer/shell-online
brew install shell-online

Installers verify release checksums. Downloads and SHA256SUMS are on the
releases page.

Use

Goal Command
Share a process shell <command>
Share a new shell shell
Watch without typing shell --read-only <command>
Name a session shell --name "web app" <command>
Keep local foreground control shell --foreground <command>
Close after a duration shell --auto-close 5m <command>
Reuse a link across restarts shell --persistent <file> <command>
Share working-directory files shell --files <command>
Share another file root shell --files-root <dir> <command>

Sessions run in the background unless --foreground is used. They close when
the wrapped process exits.

Manage sessions

Goal Command
List local sessions shell list
List account sessions shell ls
Attach locally shell attach <id>
Show an active password shell password <id>
Rotate a password shell password rotate <id>
Stop a session shell kill <id>
Link this machine shell auth
Read session automation permissions shell permissions <id>
Set daily-briefing consent shell permissions <id> --daily-briefing=true
Enable your briefing default and existing own sessions shell briefings on --all
Read your briefing default shell briefings status
Full reference shell help reference

Press Ctrl-X, then D, to detach from shell attach.

Session automation permissions share one owner-controlled record between CLI and
app. Changes appear in the open app on its next refresh. The three switches are
independent: --mcp-team-access, --daily-briefing, and
--briefing-team-access accept explicit true or false. Daily-briefing consent
allows passive owner-encrypted excerpts on compatible updated hosts; a team MCP
gateway, team delivery, and new idle-agent summary generation remain unimplemented.
A briefing default affects new sessions;
--all additionally updates only your existing sessions, not teammates' sessions.

Updating running sessions

The Go host now retains terminal screen state for reconnects, rather than only a
tail of output bytes. Existing hosts keep using their original executable until
they are restarted safely. Installing an update does not restart your processes.

Included

  • Interactive desktop and mobile browser terminal
  • PTY, full-screen TUI, resize, reconnect, tmux, and mosh-style redraw support
  • E2EE by default; read-only shares are also enforced by the CLI
  • Multi-viewer collaboration with input ownership
  • QR handoff from terminal to phone
  • Optional file browser with root and traversal controls
  • Optional account, machine linking, personal password vault, and web app
  • Refstream renderer and agent connection path (alpha)
  • Persistent Docker session and self-hosted deployment

Passive session pulse

The pulse and encrypted excerpts below require v0.22.0 or later. Encrypted
publication also requires an updated running host; upgrading does not restart it.

Already-open app terminal panes show recent output activity, unseen output in
background tabs, and fixed hints for recognized context-limit, approval, or test
result messages. These are observations, not proof that a process is idle,
finished, or successful. Replayed snapshots do not count as new activity.

Pulse uses only bytes the authorized viewer already decrypts. It adds no model
calls, prompts, network requests, or unopened-session subscriptions. Parsing is
bounded and pulse metadata stays in browser memory; it is cleared on disconnect,
loss of access, or closing the pane. This is not an automatic daily briefing.

Owner-encrypted titles and response excerpts

With daily-briefing consent enabled, an updated host can reuse an explicitly
resumed OpenCode launch conversation's existing title and latest completed
assistant response. It never prompts the agent, reads reasoning/tool output,
or invokes a model. Forks, implicit/latest conversations, unavailable SQLite,
and unsupported processes keep the generic fallback. Switching conversations
inside the TUI does not change this explicitly labeled launch-conversation binding.

Content is capped, encrypted to the owner's pinned vault key, and published at
most once per rolling 24 hours. Manual names win; excerpts are labeled with their
source date. The app decrypts in memory for the owner and clears content on vault
lock or consent/access changes. The service stores ciphertext separately from
the organization-wide session listing. Consent revocation, credential rotation,
and vault-key reset invalidate prior publication generations. This adds bounded
account-service polling/uploads, but no model calls or terminal interactions.

Team delivery and other agent adapters are not implemented yet. The team-sharing
preference does not broaden this owner-only delivery. Existing hosts need a safe
restart after upgrading to activate the publisher; the account service requires
database migration 020_session_content.sql. A compatible local OpenCode database
and sqlite3 executable are required. See setup, delivery, and privacy limits.

Security

Property Behavior
Access Anyone with both the URL and password can open a share
Encryption The CLI encrypts; the browser decrypts locally
Relay visibility Metadata, timing, encrypted frame sizes, labels, and lifecycle
Browser input Runs with the wrapped process's local permissions
Password recovery Local session or optional personal vault; no service backdoor
Plain transport mode Explicit --no-e2ee only

In v0.21.2 the browser's session-password cache is memory-only: after a reload a
session recovers from the account's encrypted vault, or requires the share
password (or host-side recovery with shell password). The legacy v3
localStorage blob is not wiped; it remains a read-only recovery input until a
lossless vault migration removes it.

Use --read-only for viewers who should not type. See the
security model and
security policy.

Platforms

OS Architectures Verification
macOS amd64, arm64 Build
Windows 386, amd64, arm64 Native ConPTY on amd64; build on others
Linux 386, amd64, armv5/6/7, arm64, LoongArch64, MIPS/MIPSLE/MIPS64/MIPS64LE, PPC64/PPC64LE, RISC-V 64, s390x Runtime under QEMU
FreeBSD 386, amd64, armv7, arm64 Build
OpenBSD 386, amd64, armv7, arm64, ppc64, riscv64 Build
NetBSD 386, amd64, armv7, arm64 Build
DragonFly BSD amd64 Build
Solaris amd64 Build

Platform details cover PTYs, routers, ROS,
installers, and test caveats.

Documentation

Start Operate Understand
Quick start Web app Security
CLI reference Mobile E2EE
Containers Reliability Refstream alpha
Self-hosting Platforms Contributing

Development

Requires Go 1.26.8, Node.js 22, and npm.

npm ci
npm run check
go test -race ./...
npm run test:app

Star History

Star History Chart

Contributors

shell.online contributors

TeoSlayer ·
teovl ·
Alexgodoroja ·
pstayets ·
monperrus ·
artemiia

MIT licensed. Developed by Pilot Protocol.

Yorumlar (0)

Sonuc bulunamadi