Skip to main content

A remote terminal API.

Project description

⚡ Open Terminal

A lightweight, self-hosted terminal that gives AI agents and automation tools a dedicated environment to run commands, manage files, and execute code — all through a simple API.

Why Open Terminal?

AI assistants are great at writing code, but they need somewhere to run it. Open Terminal is that place — a remote shell with file management, search, and more, accessible over a simple REST API.

You can run it two ways:

  • Docker (sandboxed) — runs in an isolated container with a full toolkit pre-installed: Python, Node.js, git, build tools, data science libraries, ffmpeg, and more. Great for giving AI agents a safe playground without touching your host system.
  • Bare metal — install it directly with pip and run it anywhere Python runs. Commands execute on your machine, so you get full access to your local environment.

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

That's it — you're up and running at http://localhost:8000.

[!TIP] If you don't set an API key, one is generated automatically. Grab it with docker logs open-terminal.

Customizing the Docker Environment

The default image ships with a broad set of tools, but you can tailor it to your needs. Fork the repo, edit the Dockerfile to add or remove system packages, Python libraries, or language runtimes, then build your own image:

docker build -t my-terminal .
docker run -d --name open-terminal -p 8000:8000 my-terminal

Bare Metal

No Docker? No problem. Open Terminal is a standard Python package:

# One-liner with uvx (no install needed)
uvx open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key

# Or install globally with pip
pip install open-terminal
open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key

[!CAUTION] On bare metal, commands run directly on your machine with your user's permissions. Use Docker if you want sandboxed execution.

Using with Open WebUI

Open Terminal integrates directly with Open WebUI, giving your AI assistants the ability to run commands, manage files, and interact with the terminal — right from the chat interface.

Once connected, you get:

  • 🤖 AI tool access — your models can execute commands, read/write files, and search your codebase as part of a conversation
  • 📁 Built-in file browser — browse, upload, download, and manage files on the terminal instance directly from the Open WebUI sidebar

Setup

  1. Start an Open Terminal instance (see Getting Started above)
  2. In Open WebUI, go to User Settings → Integrations
  3. Under Open Terminal, click the + button to add a connection
  4. Enter the URL (e.g. http://localhost:8000) and your API key
  5. Enable the connection — only one terminal can be active at a time

That's it — your AI assistants now have access to the terminal, and you can browse files from the sidebar.

API Docs

Full interactive API documentation is available at http://localhost:8000/docs once your instance is running.

Star History

Star History Chart

[!TIP] Need multi-tenant? Check out Terminals, which provisions and manages isolated Open Terminal containers per user with a single authenticated API entry point.

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.4.0.tar.gz (19.6 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.4.0-py3-none-any.whl (16.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for open_terminal-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f9b5cb29aaa5050aee5ce074933d763c6ed58988cd88df7b00d90638056ba1af
MD5 4acbb6648e0a85be16cea52610347e59
BLAKE2b-256 8228321bf782e25ab0f8e6252164a3a88b8de8dd997623ffc7ad26699e0e0b59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for open_terminal-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 79ffd1b9e7e701ef5757a5c6320a56e9a4f0ea1dd8704c7c604c000ee75bf937
MD5 0ee294fd78ff2446db502d70d947de5d
BLAKE2b-256 7c462fbb078f497c4296da97a69d520ce707163324ca7722385e2c01d8561400

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