Wingthing banner
ehrlich-b ehrlich-b

Wingthing

AI community

Description

Sandboxed AI agents, reachable from anywhere

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

wingthing

[![ci](https://github.com/ehrlich-b/wingthing/actions/workflows/ci.yml/badge.svg)](https://github.com/ehrlich-b/wingthing/actions/workflows/ci.yml)

Persistent, sandboxed agent terminals on machines you control. Use them locally, reattach from your terminal over SSH, or opt into encrypted browser access.

https://github.com/user-attachments/assets/f1f04caf-4b07-4298-ba76-db5b226c38f2

wt terminal --name work              # persistent sandboxed shell
wt terminal --name api -- npm run dev # persistent arbitrary command
wt egg claude --name research        # persistent sandboxed agent
# Ctrl+B Q detaches without stopping it
wt attach                             # list live local sessions
wt attach --select                    # choose interactively
wt attach research                    # names or immutable IDs both work
wt attach research --remote box       # reattach over ordinary SSH

No account or hosted service is required. If you want browser access from anywhere, `wt start` connects your machine outbound to the optional `app.wingthing.ai` relay.

Runtime and security domains

**The egg** is a sandboxed agent session on your machine. Each `wt egg ` spawns a child process inside an OS-level sandbox (Seatbelt on macOS, user namespaces + seccomp on Linux). Same idea as containers but lighter weight. Filesystem access, network reach, system calls, and resource usage are all controlled.

**The wing** is the durable runtime on your machine. It owns eggs and their session state even when no client is attached. Local and SSH clients do not need a hosted service. When browser access is enabled, terminal and wing API payloads are application-encrypted (X25519 + AES-GCM) through the relay. The shipped relay forwards ciphertext during normal operation; routing metadata remains visible, and the hosted web client still trusts the service that delivers its JavaScript. See the precise [security model](docs/security.md).

**A roost** is a deployment