perplexity-cli
π§ A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! πππ
A stupidly simple web-based terminal emulator, with common tools and Starship enabled (via Docker)! π
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
npm install
Tip
node-pty you 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.NVMforWindowsnvm install 16 && nvm use 16windows-build-tools through Visual Studio Installer MSVC v142 - VS 2019 C++ {arch} Build Tools
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!
[!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.
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 barIt is highly recommended to set a strong PIN, use HTTPS, use ALLOWED_ORIGINS, and integrate with an auth provider (i.e. Authentik / Authelia / tinyauth, etc).
We're dumb, but not stupid. Use a full-featured auth provider for production use.
DumbTerm includes the following XTerm.js addons to enhance your terminal experience:
| Addon | Description |
|---|---|
| @xterm/addon-attach | Attaches a terminal session to a websocket |
| @xterm/addon-canvas | Renderer that uses canvas to draw terminal content (used as fallback after webgl) |
| @xterm/addon-clipboard | Clipboard integration for copy/paste support |
| @xterm/addon-fit | Automatically resize terminal to fit its container |
| @xterm/addon-image | Display images inline in the terminal |
| @xterm/addon-ligatures | Font ligatures support |
| @xterm/addon-search | Search text in the terminal buffer |
| @xterm/addon-serialize | Serialize terminal output to string or HTML |
| @xterm/addon-unicode11 | Additional Unicode 11 character width support |
| @xterm/addon-web-links | Automatically hyperlink URLs in terminal |
| @xterm/addon-webgl | Renderer that uses WebGL for better performance (default render method) |
git checkout -b feature/amazing-feature)git push origin feature/amazing-feature)See Development Guide for local setup and guidelines.
Made with β€οΈ by DumbWareio & gitmotion
Got an idea? Open an issue or submit a PR
more like this
π§ A simple command-line client for the Perplexity API. Ask questions and receive answers directly from the terminal! πππ
meine π - A CLI file manager and system utility built with Textual. It combines intuitive command parsing with rich tβ¦
search projects, people, and tags