A stupidly simple web-based terminal emulator, with common tools and Starship enabled! 🚀
ctrl+f or cmd+f)# Pull and run with one command
docker run -p 3000:3000 \
-v ./data:/root/data \
-v ./config:/root/.config \
-e DUMBTERM_PIN=1234 \
-e SITE_TITLE=DumbTerm \
-e BASE_URL=http://localhost:3000 \
-e ALLOWED_ORIGINS=http://localhost:3000 \
-e ENABLE_STARSHIP=true \
-e TZ=America/Los_Angeles \
-e LOCKOUT_TIME=15 \
-e MAX_SESSION_AGE=24 \
dumbwareio/dumbterm:latest
Create a docker-compose.yml file or use the provided one:
services:
dumbterm:
image: dumbwareio/dumbterm:latest
container_name: dumbterm
restart: unless-stopped
ports:
- ${DUMBTERM_PORT:-3000}:3000
volumes:
- ${DUMBTERM_CONFIG:-./config}:/root/.config
- ${DUMBTERM_DATA_DIR:-./data}:/root/data
environment:
# Container timezone
TZ: ${DUMBTERM_TZ:-America/Los_Angeles}
# The title shown in the web interface
SITE_TITLE: ${DUMBTERM_SITE_TITLE:-DumbTerm}
# Recommended PIN protection (leave empty to disable)
DUMBTERM_PIN: ${DUMBTERM_PIN:-1234}
# The base URL for the application
BASE_URL: ${DUMBTERM_BASE_URL:-http://localhost:3000}
ENABLE_STARSHIP: ${ENABLE_STARSHIP:-true}
LOCKOUT_TIME: ${DUMBTERM_LOCKOUT_TIME:-15} # Minutes
# Session duration in hours before requiring re-authentication
MAX_SESSION_AGE: ${DUMBTERM_MAX_SESSION_AGE:-24} # Hours
# (OPTIONAL) - List of allowed origins for CORS
# ALLOWED_ORIGINS: ${DUMBTERM_ALLOWED_ORIGINS:-http://localhost:3000}
Then run:
docker compose up -d
Local method will use your local terminal environment (Windows: Powershell, Mac / Linux: bash).
Install dependencies:
npm install
[!TIP]
Windows specific:
- If you encounter issues with
node-ptyyou can try using Windows Subsystem for Linux (WSL) or may need to install:Node.js v16(Look into nvm for windows for multi node version support):winget install CoreyButler.NVMforWindows- with nvm installed use:
nvm install 16 && nvm use 16windows-build-toolsthrough Visual Studio InstallerMSVC v142 - VS 2019 C++ {arch} Build Tools- Contact us or View the official Microsoft documentation for more details
cp .env.example .env > Set environment variables in .env:PORT=3000 # Port to run the server on
DUMBTERM_PIN=1234 # Optional PIN protection
SITE_TITLE=DumbTerm # Custom site title
BASE_URL=http://localhost:3000 # Base URL for the application
npm start
| Variable | Description | Default | Required |
|---|---|---|---|
| PORT | Server port | 3000 | No |
| BASE_URL | Base URL for the application | http://localhost:PORT | No |
| DUMBTERM_PIN | PIN protection (numeric) | None | No |
| SITE_TITLE | Site title displayed in header | DumbTerm | No |
| TZ | Container timezone | America/Los_Angeles | No |
| ENABLE_STARSHIP | Enable Starship prompt (docker only) | true | No |
| NODE_ENV | Node environment mode (development or production) | production | No |
| ALLOWED_ORIGINS | Allowed CORS origins (comma-separated list) | * (all origins) | No |
| DEBUG | Enable debug logging | FALSE | No |
| LOCKOUT_TIME | Custom Pin Lockout Time (in minutes) | 15 | No |
| MAX_SESSION_AGE | Duration of authenticated session (in hours) | 24 | No |
| DEMO_MODE | Enable demo mode with simulated terminal | false | No |
ENABLE_STARSHIP to false in your environment variables.[!TIP] copy and paste one of the starship preset commands below into DumbTerm and that's it!
Example Preset Command:
[!WARNING] > Note: If running locally or mapped volume to your actual
starship.tomlconfig, the preset commands will overwrite your existingstarship.tomlfile. Make sure to back it up as needed.
View All Starship Presets:
| Preset Name | Command | Preview |
|---|---|---|
| Nerd Font Symbols | starship preset nerd-font-symbols -o ~/.config/starship.toml |
![]() |
| Bracketed Segments | starship preset bracketed-segments -o ~/.config/starship.toml |
![]() |
| Plain Text Symbols | starship preset plain-text-symbols -o ~/.config/starship.toml |
![]() |
| No Runtime Versions | starship preset no-runtime-versions -o ~/.config/starship.toml |
![]() |
| No Empty Icons | starship preset no-empty-icons -o ~/.config/starship.toml |
|
| Pure Prompt | starship preset pure-preset -o ~/.config/starship.toml |
![]() |
| Pastel Powerline | starship preset pastel-powerline -o ~/.config/starship.toml |
![]() |
Tokyo Night (DumbTerm Default with mods) |
starship preset tokyo-night -o ~/.config/starship.toml |
![]() |
| Gruvbox Rainbow | starship preset gruvbox-rainbow -o ~/.config/starship.toml |
![]() |
| Jetpack | starship preset jetpack -o ~/.config/starship.toml |
![]() |
| No Nerd Fonts | starship preset no-nerd-font -o ~/.config/starship.toml |
n/a |
starship preset -l in DumbTerm.For more details, visit the Starship Presets page.
~/.config/starship.toml file in your set volume mount or within the container./root/.config/starship.toml.starship.toml file to the container using Docker volumes.DumbTerm provides a comprehensive set of keyboard shortcuts for efficient terminal management. The modifier keys vary by operating system:
Ctrl+Alt+{key}Ctrl+Cmd+{key}| Action | Windows/Linux | macOS |
|---|---|---|
| New Terminal | Ctrl+Alt+T |
Ctrl+Cmd+T |
| Close Terminal | Ctrl+Alt+W |
Ctrl+Cmd+W |
| Rename Terminal | Ctrl+Alt+R |
Ctrl+Cmd+R |
| Search in Terminal | Ctrl+F |
Cmd+F |
| Next Terminal | Ctrl+Alt+> or Ctrl+Alt+. |
Ctrl+Cmd+> or Ctrl+Cmd+. |
| Previous Terminal | Ctrl+Alt+< or Ctrl+Alt+, |
Ctrl+Cmd+< or Ctrl+Cmd+, |
| Switch to Terminal 1-9 | Ctrl+Alt+[1-9] |
Ctrl+Cmd+[1-9] |
Ctrl+F (Windows/Linux) or Cmd+F (macOS) to open the search bar$ claude mcp add DumbTerm \
-- python -m otcore.mcp_server <graph>