{"id":50844476,"url":"https://github.com/shantoislamdev/shellwire","last_synced_at":"2026-06-14T08:33:41.682Z","repository":{"id":364080490,"uuid":"1262121547","full_name":"shantoislamdev/shellwire","owner":"shantoislamdev","description":"A WebSocket daemon for remote shell execution and interactive terminal sessions, built to give Android apps and agents a full desktop-like shell through Termux","archived":false,"fork":false,"pushed_at":"2026-06-11T14:40:11.000Z","size":393,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T08:33:40.430Z","etag":null,"topics":["android","cli","daemon","posix","pty","python","remote-execution","remote-shell","termux","websocket"],"latest_commit_sha":null,"homepage":"https://shellwire.shantoislam.dev","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shantoislamdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-07T15:48:59.000Z","updated_at":"2026-06-11T14:43:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/shantoislamdev/shellwire","commit_stats":null,"previous_names":["shantoislamdev/shellwire"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/shantoislamdev/shellwire","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shantoislamdev%2Fshellwire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shantoislamdev%2Fshellwire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shantoislamdev%2Fshellwire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shantoislamdev%2Fshellwire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shantoislamdev","download_url":"https://codeload.github.com/shantoislamdev/shellwire/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shantoislamdev%2Fshellwire/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34315072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","cli","daemon","posix","pty","python","remote-execution","remote-shell","termux","websocket"],"created_at":"2026-06-14T08:33:39.200Z","updated_at":"2026-06-14T08:33:41.677Z","avatar_url":"https://github.com/shantoislamdev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shellwire\n\n**A WebSocket daemon for remote shell execution and interactive terminal sessions**\n\n`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.\n\n## Features\n\n- **Stable token auth** — token generated once, persists across restarts\n- **Single client** — one active connection at a time, with reconnection support\n- **Concurrent execution** — up to 4 simultaneous commands\n- **Interactive PTY sessions (POSIX)** — full pseudo-terminal support with dynamic resizing\n- **Environment Tracking** — persistent working directory (CWD) and exported environment variables across commands\n- **Compound Command Rewriting** — automatically rewrites bash chains (e.g. `A \u0026\u0026 B \u0026` -\u003e `A \u0026\u0026 { B \u0026 }`) for standard backgrounding\n- **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.\n- **Robust Process Isolation** — prevents zombie processes via process-group escalation kills (SIGTERM → SIGKILL) and protects against runaway output\n- **Health endpoint** — HTTP GET `/health` on the same port\n\n## Installation\n\n```bash\n# Via pip\npip install shellwire\n```\n\nOr install from source:\n\n```bash\ngit clone https://github.com/shantoislamdev/shellwire.git\ncd shellwire\npip install -e \".[dev]\"\n```\n\n### Auto-venv Runners\n\nIf 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:\n\n- **Unix / Linux**:\n  - `./run.sh` — Bootstraps the daemon inside `venv`\n  - `./test.sh` — Runs the test suite inside `venv`\n- **Windows**:\n  - `run.bat` — Bootstraps the daemon inside `venv`\n  - `test.bat` — Runs the test suite inside `venv`\n\n## Quick Start\n\n```bash\n# Start the daemon (foreground)\nshellwire start\n\n# Start as background daemon\nshellwire start --daemon\n\n# Check status\nshellwire status\n\n# View your auth token\nshellwire token show\n\n# Stop the daemon\nshellwire stop\n```\n\nOn first start, a stable auth token is generated and displayed. **Save it** — you'll need it to connect your client.\n\n## Documentation\n\nDocumentation is available in the `docs/` directory:\n\n*   **[Overview \u0026 Architecture](docs/index.md)**: High-level overview and architectural flow.\n*   **[Daemon Guide](docs/daemon_guide.md)**: Server administration, CLI commands, configuration flags, and token management.\n*   **[Protocol Specification](docs/protocol_spec.md)**: Strict JSON schemas for all WebSocket messages (`auth`, `execute`, `start_session`, etc.).\n*   **[Client Integration](docs/client_integration.md)**: Developer guide for building custom WebSocket clients, including complete Kotlin examples.\n\n## Development\n\n```bash\n# Install with dev dependencies\npip install -e \".[dev]\"\n\n# Run tests\npytest\n\n# Run with coverage\npytest --cov=shellwire\n```\n\n## License\n\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshantoislamdev%2Fshellwire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshantoislamdev%2Fshellwire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshantoislamdev%2Fshellwire/lists"}