Skip to main content

shellwire

A WebSocket daemon for remote shell execution and interactive terminal sessions

shellwire runs as a WebSocket server, providing a bridge that lets remote clients execute shell commands with full system access. While fully compatible with Linux and macOS, it is uniquely engineered for Android devices. Android applications typically lack proper terminal access, making it difficult to run local AI agents or advanced tools on-device. Shellwire solves this by running inside Termux and exposing a WebSocket server, acting as a bridge to give Android apps a complete, desktop-grade shell environment.

Features

  • Stable token auth — token generated once, persists across restarts
  • Single client — one active connection at a time, with reconnection support
  • Concurrent execution — up to 4 simultaneous commands
  • Interactive PTY sessions (POSIX) — full pseudo-terminal support with dynamic resizing
  • Environment Tracking — persistent working directory (CWD) and exported environment variables across commands
  • Compound Command Rewriting — automatically rewrites bash chains (e.g. A && B & -> A && { B & }) for standard backgrounding
  • Termux / Android Optimized — Built-in resilience against mobile network handoffs, terminal DOZE states, and phantom process killers, ensuring extreme stability for long-running mobile environments.
  • Robust Process Isolation — prevents zombie processes via process-group escalation kills (SIGTERM → SIGKILL) and protects against runaway output
  • Health endpoint — HTTP GET /health on the same port

Installation

# Via pip
pip install shellwire

Or install from source:

git clone https://github.com/shantoislamdev/shellwire.git
cd shellwire
pip install -e ".[dev]"

Auto-venv Runners

If you clone the repository directly, you can use the included runner scripts which will automatically create a virtual environment (venv) and install dependencies for you:

  • Unix / Linux:
    • ./run.sh — Bootstraps the daemon inside venv
    • ./test.sh — Runs the test suite inside venv
  • Windows:
    • run.bat — Bootstraps the daemon inside venv
    • test.bat — Runs the test suite inside venv

Quick Start

# Start the daemon (foreground)
shellwire start

# Start as background daemon
shellwire start --daemon

# Check status
shellwire status

# View your auth token
shellwire token show

# Stop the daemon
shellwire stop

On first start, a stable auth token is generated and displayed. Save it — you'll need it to connect your client.

Documentation

Documentation is available in the docs/ directory:

  • Overview & Architecture: High-level overview and architectural flow.
  • Daemon Guide: Server administration, CLI commands, configuration flags, and token management.
  • Protocol Specification: Strict JSON schemas for all WebSocket messages (auth, execute, start_session, etc.).
  • Client Integration: Developer guide for building custom WebSocket clients, including complete Kotlin examples.

Development

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run with coverage
pytest --cov=shellwire

License

Apache 2.0

Metadata

Release files for shellwire 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shellwire 0.1.4
File Size Uploaded
shellwire-0.1.4.tar.gz 256.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shellwire 0.1.4
File Interpreter ABI Platform
shellwire-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 318.3 kB

Release files / shellwire-0.1.4.tar.gz

Download URL shellwire-0.1.4.tar.gz
Size 256.2 kB
Tags Source
SHA-256 checksum
How to use checksums
09489609e7bc2a63cc9831501a5a39bafefd46da539d96c3554099bc9f8e3191
BLAKE2b-256 checksum
How to use checksums
71528fc87088687768a9cfa166cb5c4ade63a6f3e65938c56ce6d58e8bdccd52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.

Transparency log

Release files / shellwire-0.1.4-py3-none-any.whl

Download URL shellwire-0.1.4-py3-none-any.whl
Size 62.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
351955263d0ac4c44153098772facf8eb30cc1f2e9a15746c41c14e800851889
BLAKE2b-256 checksum
How to use checksums
7da542e95f8b19de72ab5dfab4e5d88ff3290739976fd73dc55b8efa787ca0f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page