tmux session manager
Project description
desto lets you run and manage your bash and Python scripts in the background (inside tmux sessions) through a simple web dashboard. Launch scripts, monitor their and your system's status, view live logs, and control sessions—all from your browser.
The key features are:
- One-click session control: Start, monitor, and stop
tmuxsessions from your browser. - 🐚 Bash & 🐍 Python support: Run both bash (
.sh) and Python (.py) scripts seamlessly. - Live system stats: See real-time CPU, memory, and disk usage at a glance.
- Script management: Use your existing scripts, write new ones, edit, save, or delete them directly in the dashboard.
- Script chaining: Queue multiple scripts to run sequentially in a single session.
- Scheduling: Schedule scripts or script chains to launch at a specific date and time.
- Live log viewer: Watch script output in real time and view logs for each session.
- Persistent storage: Scripts and logs are saved in dedicated folders for easy access.
- 🖥️ Command-line interface: Manage sessions, view logs, and control scripts from the terminal with our modern CLI. Learn more →
🎬 Demo
⚡ Quick Start
🐳 Quick Start with Docker
The easiest way to get started with desto is using Docker:
# Clone the repository
git clone https://github.com/kalfasyan/desto.git
cd desto
# Set up example scripts (optional - for testing)
make docker-setup-examples
# Build Docker image
docker build -t desto:latest .
# Use the example scripts (or your own scripts directory)
docker run -d -p 8809:8809 \
-v $PWD/desto_scripts:/app/desto_scripts \
-v $PWD/desto_logs:/app/desto_logs \
--name desto-dashboard \
desto:latest
🌐 Access the dashboard at: http://localhost:8809
Make sure your bash scripts are executable:
chmod +x /path/to/your/scripts/*.sh
✨ desto Overview
👀 Dashboard Overview
🚀 Launch your scripts as tmux sessions
When you start desto, it creates desto_scripts/ and desto_logs/ folders in your current directory. Want to use your own locations? Just change these in the settings, or set the DESTO_SCRIPTS_DIR and DESTO_LOGS_DIR environment variables.
Your scripts show up automatically—no setup needed. Both .sh (bash) and .py (Python) scripts are supported with automatic detection and appropriate execution. Ready to launch? Just:
- Name your
tmuxsession - Select one of your scripts
- (OPTIONAL) edit and save your changes
- Click "Launch"! 🎬
🟢 Keep Alive: Want your session to stay open after your script finishes? Just toggle the switch. This adds tail -f /dev/null at the end, so you can keep the session active and continue viewing logs, even after your script completes.
✍️ Write new scripts and save them
If you want to compose a new script, you can do it right here, or simply just paste the output of your favorite LLM :) Choose between bash and Python templates with syntax highlighting and smart defaults.
⚙️ Change settings
More settings to be added!
📜 View your script's logs
🛠️ Installation
🐳 Docker Installation (only dashboard)
Docker lets you run desto without installing anything on your computer. It provides a consistent environment across all platforms, making it the easiest way to get started.
Quick Docker Setup
See the Quick Start with Docker section above for a complete guide.
Docker Management
# View logs
docker logs -f desto-dashboard
# Stop the container
docker stop desto-dashboard
# Remove the container
docker rm desto-dashboard
# Rebuild after changes
docker build -t desto:latest . --no-cache
docker run -d -p 8809:8809 \
-v $PWD/desto_scripts:/app/scripts \
-v $PWD/desto_logs:/app/logs \
--name desto-dashboard \
desto:latest
# List all containers
docker ps -a
# List all images
docker images -a
# Remove all stopped containers
docker container prune
# Remove all unused images
docker image prune -a
# Remove the container and image
docker rm -f desto-dashboard
docker rmi desto:latest
🔧 Traditional Installation
Requirements
Check pyproject.toml
Installation Steps
-
Install
tmuxandatInstructions for different package managers
- Debian/Ubuntu
sudo apt install tmux at
- Almalinux/Fedora
sudo dnf install tmux at
- Arch Linux
sudo pacman -S tmux at
Note: The
atpackage is required for scheduling features. If you don't plan to use script scheduling, you can skip installingat. - Debian/Ubuntu
-
Install
destoInstallation Steps
-
With uv, simply run:
uv add desto
This will install desto in your project ✅ Or if you don't have a project yet, you can set up everything with
uv:-
Install
uvby following the instructions on the official site. -
Create and set up your project:
mkdir myproject && cd myproject uv init uv venv source .venv/bin/activate uv add desto
Done!
-
-
With pip:
pip install desto
-
-
Run the Application
desto
-
Open in your browser
After starting, visit http://localhost:8809 (or the address shown in your terminal).
🖥️ Command Line Interface
In addition to the web dashboard, desto includes a powerful CLI for managing tmux sessions from the terminal. Perfect for automation, scripting, or when you prefer the command line.
Installation as a uv Tool
# Install desto CLI globally
uv tool install desto
# Or install from source
cd /path/to/desto
uv tool install . --force
This installs two executables:
desto- Web dashboarddesto-cli- Command-line interface
Quick CLI Usage
# Check system status
desto-cli doctor
# Session Management
desto-cli sessions list
# Start a new session
desto-cli sessions start "my-task" "python my_script.py"
# View session logs
desto-cli sessions logs "my-task"
# Kill a session
desto-cli sessions kill "my-task"
# Script Management
desto-cli scripts list # List all scripts
desto-cli scripts create "my_script" --type python # Create new script
desto-cli scripts edit "my_script" # Edit script in $EDITOR
desto-cli scripts run "my_script" # Run script in tmux session
desto-cli scripts run "my_script" --direct # Run script directly
The CLI provides the same functionality as the web interface but optimized for terminal use, including rich formatting, real-time log viewing, and comprehensive session management.
License
This work is licensed under a Creative Commons Attribution 4.0 International License.
TODO
- Explore possibility to pause processes running inside a session
- Add dark mode/theme toggle for the dashboard UI
desto makes handling tmux sessions and running scripts approachable for everyone—no terminal gymnastics required!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file desto-0.2.3.tar.gz.
File metadata
- Download URL: desto-0.2.3.tar.gz
- Upload date:
- Size: 12.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74f299edc641cd9627352fb68bce225f8d2573b0fa8cdb93dca84a7901ac54cf
|
|
| MD5 |
e8abe3a5ee27ccb7e3367b211112e5e5
|
|
| BLAKE2b-256 |
cbcaba264e737227c332a7661746b99986fe0cbac9fd9e8f01ada9c4aa42b328
|
Provenance
The following attestation bundles were made for desto-0.2.3.tar.gz:
Publisher:
publish.yml on kalfasyan/desto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
desto-0.2.3.tar.gz -
Subject digest:
74f299edc641cd9627352fb68bce225f8d2573b0fa8cdb93dca84a7901ac54cf - Sigstore transparency entry: 268747582
- Sigstore integration time:
-
Permalink:
kalfasyan/desto@c75c6eee807e4abcf2d2a82661ad59bea33a8af4 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/kalfasyan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c75c6eee807e4abcf2d2a82661ad59bea33a8af4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file desto-0.2.3-py3-none-any.whl.
File metadata
- Download URL: desto-0.2.3-py3-none-any.whl
- Upload date:
- Size: 47.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e61b8d0d7669941701ae768ed0f0bd303855fce657241b97f772cca1376ef0d3
|
|
| MD5 |
7ebc53d32a80af8d6d826ae0b261bdb4
|
|
| BLAKE2b-256 |
a4baa4e704c069c169adc6da8a107da96cdca4f4bcfc5e9806038a66446ad1fe
|
Provenance
The following attestation bundles were made for desto-0.2.3-py3-none-any.whl:
Publisher:
publish.yml on kalfasyan/desto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
desto-0.2.3-py3-none-any.whl -
Subject digest:
e61b8d0d7669941701ae768ed0f0bd303855fce657241b97f772cca1376ef0d3 - Sigstore transparency entry: 268747589
- Sigstore integration time:
-
Permalink:
kalfasyan/desto@c75c6eee807e4abcf2d2a82661ad59bea33a8af4 -
Branch / Tag:
refs/tags/v0.2.3 - Owner: https://github.com/kalfasyan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c75c6eee807e4abcf2d2a82661ad59bea33a8af4 -
Trigger Event:
push
-
Statement type: