Skip to main content

A remote terminal API.

Project description

⚡ Open Terminal

A lightweight API for running shell commands remotely — designed for AI agents and automation.

The container ships with a full toolkit (Python, git, jq, curl, build tools, and more) and runs as a non-root user with passwordless sudo.

Getting Started

Docker (recommended)

docker run -d --name open-terminal --restart unless-stopped -p 8000:8000 -v open-terminal:/home/user -e OPEN_TERMINAL_API_KEY=your-secret-key ghcr.io/open-webui/open-terminal

If no API key is provided, one is auto-generated and printed on startup (docker logs open-terminal).

Build from Source

docker build -t open-terminal .
docker run -p 8000:8000 open-terminal

Bare Metal

pip install open-terminal
open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key

Quick Examples

Run a command:

curl -X POST http://localhost:8000/execute?wait=5 \
  -H "Authorization: Bearer <api-key>" \
  -H "Content-Type: application/json" \
  -d '{"command": "echo hello"}'

Upload a file:

curl -X POST "http://localhost:8000/files/upload?directory=/home/user&url=https://example.com/data.csv" \
  -H "Authorization: Bearer <api-key>"

API Docs

Full interactive API documentation is available at http://localhost:8000/docs.

License

MIT — see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_terminal-0.2.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_terminal-0.2.1-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file open_terminal-0.2.1.tar.gz.

File metadata

  • Download URL: open_terminal-0.2.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for open_terminal-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8f90d67359ad2d1f80ab8e7ef1d0c5c7cb79f242f2414994f4b02ff372962730
MD5 0a81561198e5873400900f9b09adb88f
BLAKE2b-256 91e2de6b37c7762364216e24e91100a5567ef9590ec82663abbf9e71dd56ed3e

See more details on using hashes here.

File details

Details for the file open_terminal-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for open_terminal-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e4da6efa691b34fa3d4e10d9ab5b4996eaa09e8d804f212c9d4e090a4e8b92fe
MD5 67f0d1de414b325026810f07ad48147d
BLAKE2b-256 d2f93bca2d3bacab57ea15c2a37bad978b0d558fd7183268a0a405a6818c048d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page