Name | taskmux JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Modern tmux development environment manager with real-time health monitoring, auto-restart, and WebSocket API |
upload_time | 2025-07-13 11:02:12 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | MIT |
keywords |
daemon
development
manager
monitoring
session
terminal
tmux
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Taskmux
A modern tmux development environment manager with real-time health monitoring, auto-restart capabilities, and WebSocket API. Built with Python using libtmux for reliable session management.
## Why Taskmux?
Instead of manually managing multiple tmux windows or remembering complex command sequences, Taskmux provides:
- **Dynamic task management**: Define tasks in JSON, manage via modern CLI
- **Health monitoring**: Real-time task health checks with visual indicators
- **Auto-restart**: Automatically restart failed tasks to keep development flowing
- **WebSocket API**: Real-time status updates and remote task management
- **Rich CLI**: Beautiful terminal output with Typer and Rich integration
- **File watching**: Automatically detects config changes and reloads tasks
- **Zero setup**: Single command installation with uv tool management
## Installation
### Prerequisites
- [tmux](https://github.com/tmux/tmux) - Terminal multiplexer
- [uv](https://docs.astral.sh/uv/) - Modern Python package manager
### Install uv (if you don't have it)
**Quick install** (macOS/Linux):
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
**Windows**:
```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
**Alternative methods**:
```bash
# Via Homebrew (macOS)
brew install uv
# Via pipx
pipx install uv
# Via WinGet (Windows)
winget install --id=astral-sh.uv -e
```
### Install Taskmux
**Recommended** (installs globally):
```bash
uv tool install taskmux
```
**From source**:
```bash
git clone https://github.com/your-repo/taskmux
cd taskmux
uv tool install .
```
After installation, `taskmux` command will be available globally.
## Quick Start
1. **Create config file** in your project root:
```json
{
"name": "myproject",
"tasks": {
"server": "npm run dev",
"build": "npm run build:watch",
"test": "npm run test:watch",
"db": "docker-compose up postgres"
}
}
```
2. **Start all tasks**:
```bash
taskmux start
```
3. **Monitor and manage**:
```bash
taskmux list # See what's running with health status
taskmux health # Detailed health check table
taskmux restart server # Restart specific task
taskmux logs -f test # Follow logs
```
## Commands Reference
### Core Commands
```bash
# Session Management
taskmux start # Start all tasks in tmux session
taskmux status # Show session and task status
taskmux list # List all tasks with health indicators
taskmux stop # Stop session and all tasks
# Task Management
taskmux restart <task> # Restart specific task
taskmux kill <task> # Kill specific task
taskmux add <task> "<command>" # Add new task to config
taskmux remove <task> # Remove task from config
# Monitoring
taskmux health # Health check with status table
taskmux logs <task> # Show recent logs
taskmux logs -f <task> # Follow logs (live)
taskmux logs -n 100 <task> # Show last N lines
# Advanced
taskmux watch # Watch config for changes
taskmux daemon --port 8765 # Run with WebSocket API
```
### Command Examples
```bash
# Start development environment
taskmux start
# Check what's running with health status
taskmux list
# Output:
# Session: myproject
# ──────────────────────────────────────────────────
# 💚 Healthy server npm run dev
# 💚 Healthy build npm run build:watch
# 🔴 Unhealthy test npm run test:watch
# 💚 Healthy db docker-compose up postgres
# Detailed health check
taskmux health
# ┏━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━┓
# ┃ Status ┃ Task ┃ Health ┃
# ┡━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━┩
# │ 💚 │ server │ Healthy │
# │ 💚 │ build │ Healthy │
# │ 🔴 │ test │ Unhealthy │
# │ 💚 │ db │ Healthy │
# └────────┴─────────┴───────────┘
# Restart a misbehaving service
taskmux restart server
# Add a new background task
taskmux add worker "python background_worker.py"
# Follow logs for debugging
taskmux logs -f test
# Watch config file for changes
taskmux watch
```
## Configuration
### Config File Format
Create `taskmux.json` in your project root:
```json
{
"name": "session-name",
"tasks": {
"task-name": "command to run",
"another-task": "another command"
}
}
```
### Config Examples
**Web Development**:
```json
{
"name": "webapp",
"tasks": {
"frontend": "npm run dev",
"backend": "python manage.py runserver",
"database": "docker-compose up -d postgres",
"redis": "redis-server",
"worker": "celery worker -A myapp",
"tailwind": "npx tailwindcss -w"
}
}
```
**Data Science**:
```json
{
"name": "analysis",
"tasks": {
"jupyter": "jupyter lab --port=8888",
"mlflow": "mlflow ui --port=5000",
"airflow": "airflow webserver",
"postgres": "docker run -p 5432:5432 postgres:13",
"tensorboard": "tensorboard --logdir=./logs"
}
}
```
**Microservices**:
```json
{
"name": "microservices",
"tasks": {
"api-gateway": "node gateway/server.js",
"user-service": "go run services/user/main.go",
"order-service": "python services/orders/app.py",
"redis": "redis-server",
"postgres": "docker-compose up -d db",
"monitoring": "prometheus --config.file=prometheus.yml"
}
}
```
## Advanced Features
### Daemon Mode with WebSocket API
Run Taskmux as a background daemon with real-time API:
```bash
# Start daemon on port 8765 (default)
taskmux daemon
# Custom port
taskmux daemon --port 9000
```
**WebSocket API Usage**:
```javascript
// Connect to WebSocket API
const ws = new WebSocket('ws://localhost:8765');
// Get status
ws.send(JSON.stringify({
command: "status"
}));
// Restart task
ws.send(JSON.stringify({
command: "restart",
params: { task: "server" }
}));
// Get logs
ws.send(JSON.stringify({
command: "logs",
params: { task: "server", lines: 50 }
}));
```
### Health Monitoring & Auto-restart
Taskmux continuously monitors task health and can auto-restart failed processes:
- **Health indicators**: 💚 Healthy, 🔴 Unhealthy, ○ Stopped
- **Process monitoring**: Detects when tasks exit or become unresponsive
- **Auto-restart**: Daemon mode automatically restarts failed tasks
- **Health checks**: Run `taskmux health` for detailed status
### File Watching
Monitor config changes in real-time:
```bash
# Terminal 1: Start file watcher
taskmux watch
# Terminal 2: Edit config
echo '{"name": "test", "tasks": {"new": "echo hello"}}' > taskmux.json
# Watcher automatically reloads config and updates running tasks
# New task is immediately available
taskmux restart new
```
## Workflow Integration
### Daily Development
```bash
# Morning: Start everything
taskmux start
# During development: Monitor health
taskmux health
# Restart services as needed
taskmux restart api
taskmux logs -f frontend
# Add new services on the fly
taskmux add monitoring "python monitor.py"
# Run with file watching for config changes
taskmux watch
# Evening: Stop everything
taskmux stop
```
### Tmux Integration
Taskmux creates standard tmux sessions. You can use all tmux commands:
```bash
# Attach to session
tmux attach-session -t myproject
# Switch between task windows
# Ctrl+b 1, Ctrl+b 2, etc.
# Create additional windows
tmux new-window -t myproject -n shell
# Detach and reattach later
# Ctrl+b d
tmux attach-session -t myproject
```
### Multiple Projects
Each project gets its own tmux session based on the `name` field:
```bash
# Project A (session: "webapp")
cd ~/projects/webapp
taskmux start
# Project B (session: "api")
cd ~/projects/api
taskmux start
# Both run simultaneously with separate sessions
tmux list-sessions
# webapp: 4 windows
# api: 2 windows
```
## Architecture
Taskmux is built with modern Python tooling:
- **libtmux**: Reliable Python API for tmux session management
- **Typer**: Modern CLI framework with rich help and validation
- **Rich**: Beautiful terminal output with tables and progress bars
- **WebSockets**: Real-time API for remote monitoring and control
- **asyncio**: Async health monitoring and daemon capabilities
- **Watchdog**: File system monitoring for config changes
## Troubleshooting
### Common Issues
**Config not found**:
```bash
Error: Config file taskmux.json not found
```
- Ensure `taskmux.json` exists in current directory
- Check JSON syntax with `jq . taskmux.json`
**Session already exists**:
```bash
Session 'myproject' already exists
```
- Kill existing session: `taskmux stop`
- Or attach to it: `tmux attach-session -t myproject`
**Task not restarting**:
- Check if task name exists: `taskmux list`
- Verify session is running: `taskmux status`
- Check task health: `taskmux health`
**libtmux connection issues**:
- Ensure tmux is installed and in PATH
- Try restarting tmux server: `tmux kill-server`
### Debug Mode
View detailed tmux session information:
```bash
# Check if session exists
tmux has-session -t myproject
# List windows in session
tmux list-windows -t myproject
# View logs manually
tmux capture-pane -t myproject:taskname -p
# Check daemon logs
tail -f ~/.taskmux/daemon.log
```
## Contributing
Taskmux follows modern Python development practices:
1. **Modular architecture**: Separate concerns (CLI, tmux management, daemon, config)
2. **Type hints**: Full type annotation for better IDE support
3. **Rich CLI**: Beautiful, user-friendly command-line interface
4. **Async support**: Background monitoring and WebSocket API
5. **Comprehensive testing**: Test across different tmux versions and platforms
## License
MIT License - feel free to modify and distribute.
Raw data
{
"_id": null,
"home_page": null,
"name": "taskmux",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "daemon, development, manager, monitoring, session, terminal, tmux",
"author": null,
"author_email": "Nik Cubrilovic <git@nikcub.me>",
"download_url": "https://files.pythonhosted.org/packages/d7/27/ec40c5a0e94d6bcdd1d51d8c18ae17748d72de65292b44d2aeeb67dffab1/taskmux-0.1.0.tar.gz",
"platform": null,
"description": "# Taskmux\n\nA modern tmux development environment manager with real-time health monitoring, auto-restart capabilities, and WebSocket API. Built with Python using libtmux for reliable session management.\n\n## Why Taskmux?\n\nInstead of manually managing multiple tmux windows or remembering complex command sequences, Taskmux provides:\n\n- **Dynamic task management**: Define tasks in JSON, manage via modern CLI\n- **Health monitoring**: Real-time task health checks with visual indicators \n- **Auto-restart**: Automatically restart failed tasks to keep development flowing\n- **WebSocket API**: Real-time status updates and remote task management\n- **Rich CLI**: Beautiful terminal output with Typer and Rich integration\n- **File watching**: Automatically detects config changes and reloads tasks\n- **Zero setup**: Single command installation with uv tool management\n\n## Installation\n\n### Prerequisites\n\n- [tmux](https://github.com/tmux/tmux) - Terminal multiplexer\n- [uv](https://docs.astral.sh/uv/) - Modern Python package manager\n\n### Install uv (if you don't have it)\n\n**Quick install** (macOS/Linux):\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n**Windows**:\n```powershell\npowershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n```\n\n**Alternative methods**:\n```bash\n# Via Homebrew (macOS)\nbrew install uv\n\n# Via pipx\npipx install uv\n\n# Via WinGet (Windows)\nwinget install --id=astral-sh.uv -e\n```\n\n### Install Taskmux\n\n**Recommended** (installs globally):\n```bash\nuv tool install taskmux\n```\n\n**From source**:\n```bash\ngit clone https://github.com/your-repo/taskmux\ncd taskmux\nuv tool install .\n```\n\nAfter installation, `taskmux` command will be available globally.\n\n## Quick Start\n\n1. **Create config file** in your project root:\n\n```json\n{\n \"name\": \"myproject\",\n \"tasks\": {\n \"server\": \"npm run dev\",\n \"build\": \"npm run build:watch\", \n \"test\": \"npm run test:watch\",\n \"db\": \"docker-compose up postgres\"\n }\n}\n```\n\n2. **Start all tasks**:\n```bash\ntaskmux start\n```\n\n3. **Monitor and manage**:\n```bash\ntaskmux list # See what's running with health status\ntaskmux health # Detailed health check table\ntaskmux restart server # Restart specific task\ntaskmux logs -f test # Follow logs\n```\n\n## Commands Reference\n\n### Core Commands\n\n```bash\n# Session Management\ntaskmux start # Start all tasks in tmux session\ntaskmux status # Show session and task status\ntaskmux list # List all tasks with health indicators\ntaskmux stop # Stop session and all tasks\n\n# Task Management \ntaskmux restart <task> # Restart specific task\ntaskmux kill <task> # Kill specific task\ntaskmux add <task> \"<command>\" # Add new task to config\ntaskmux remove <task> # Remove task from config\n\n# Monitoring\ntaskmux health # Health check with status table\ntaskmux logs <task> # Show recent logs\ntaskmux logs -f <task> # Follow logs (live)\ntaskmux logs -n 100 <task> # Show last N lines\n\n# Advanced\ntaskmux watch # Watch config for changes\ntaskmux daemon --port 8765 # Run with WebSocket API\n```\n\n### Command Examples\n\n```bash\n# Start development environment\ntaskmux start\n\n# Check what's running with health status\ntaskmux list\n# Output:\n# Session: myproject\n# \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n# \ud83d\udc9a Healthy server npm run dev\n# \ud83d\udc9a Healthy build npm run build:watch\n# \ud83d\udd34 Unhealthy test npm run test:watch\n# \ud83d\udc9a Healthy db docker-compose up postgres\n\n# Detailed health check\ntaskmux health\n# \u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n# \u2503 Status \u2503 Task \u2503 Health \u2503\n# \u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n# \u2502 \ud83d\udc9a \u2502 server \u2502 Healthy \u2502\n# \u2502 \ud83d\udc9a \u2502 build \u2502 Healthy \u2502\n# \u2502 \ud83d\udd34 \u2502 test \u2502 Unhealthy \u2502\n# \u2502 \ud83d\udc9a \u2502 db \u2502 Healthy \u2502\n# \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n\n# Restart a misbehaving service\ntaskmux restart server\n\n# Add a new background task\ntaskmux add worker \"python background_worker.py\"\n\n# Follow logs for debugging\ntaskmux logs -f test\n\n# Watch config file for changes\ntaskmux watch\n```\n\n## Configuration\n\n### Config File Format\n\nCreate `taskmux.json` in your project root:\n\n```json\n{\n \"name\": \"session-name\",\n \"tasks\": {\n \"task-name\": \"command to run\",\n \"another-task\": \"another command\"\n }\n}\n```\n\n### Config Examples\n\n**Web Development**:\n```json\n{\n \"name\": \"webapp\",\n \"tasks\": {\n \"frontend\": \"npm run dev\",\n \"backend\": \"python manage.py runserver\",\n \"database\": \"docker-compose up -d postgres\",\n \"redis\": \"redis-server\",\n \"worker\": \"celery worker -A myapp\",\n \"tailwind\": \"npx tailwindcss -w\"\n }\n}\n```\n\n**Data Science**:\n```json\n{\n \"name\": \"analysis\",\n \"tasks\": {\n \"jupyter\": \"jupyter lab --port=8888\",\n \"mlflow\": \"mlflow ui --port=5000\",\n \"airflow\": \"airflow webserver\",\n \"postgres\": \"docker run -p 5432:5432 postgres:13\",\n \"tensorboard\": \"tensorboard --logdir=./logs\"\n }\n}\n```\n\n**Microservices**:\n```json\n{\n \"name\": \"microservices\", \n \"tasks\": {\n \"api-gateway\": \"node gateway/server.js\",\n \"user-service\": \"go run services/user/main.go\",\n \"order-service\": \"python services/orders/app.py\",\n \"redis\": \"redis-server\",\n \"postgres\": \"docker-compose up -d db\",\n \"monitoring\": \"prometheus --config.file=prometheus.yml\"\n }\n}\n```\n\n## Advanced Features\n\n### Daemon Mode with WebSocket API\n\nRun Taskmux as a background daemon with real-time API:\n\n```bash\n# Start daemon on port 8765 (default)\ntaskmux daemon\n\n# Custom port\ntaskmux daemon --port 9000\n```\n\n**WebSocket API Usage**:\n```javascript\n// Connect to WebSocket API\nconst ws = new WebSocket('ws://localhost:8765');\n\n// Get status\nws.send(JSON.stringify({\n command: \"status\"\n}));\n\n// Restart task\nws.send(JSON.stringify({\n command: \"restart\",\n params: { task: \"server\" }\n}));\n\n// Get logs\nws.send(JSON.stringify({\n command: \"logs\", \n params: { task: \"server\", lines: 50 }\n}));\n```\n\n### Health Monitoring & Auto-restart\n\nTaskmux continuously monitors task health and can auto-restart failed processes:\n\n- **Health indicators**: \ud83d\udc9a Healthy, \ud83d\udd34 Unhealthy, \u25cb Stopped\n- **Process monitoring**: Detects when tasks exit or become unresponsive\n- **Auto-restart**: Daemon mode automatically restarts failed tasks\n- **Health checks**: Run `taskmux health` for detailed status\n\n### File Watching\n\nMonitor config changes in real-time:\n\n```bash\n# Terminal 1: Start file watcher\ntaskmux watch\n\n# Terminal 2: Edit config\necho '{\"name\": \"test\", \"tasks\": {\"new\": \"echo hello\"}}' > taskmux.json\n# Watcher automatically reloads config and updates running tasks\n\n# New task is immediately available\ntaskmux restart new\n```\n\n## Workflow Integration\n\n### Daily Development\n\n```bash\n# Morning: Start everything\ntaskmux start\n\n# During development: Monitor health\ntaskmux health\n\n# Restart services as needed\ntaskmux restart api\ntaskmux logs -f frontend\n\n# Add new services on the fly\ntaskmux add monitoring \"python monitor.py\"\n\n# Run with file watching for config changes\ntaskmux watch\n\n# Evening: Stop everything\ntaskmux stop\n```\n\n### Tmux Integration\n\nTaskmux creates standard tmux sessions. You can use all tmux commands:\n\n```bash\n# Attach to session\ntmux attach-session -t myproject\n\n# Switch between task windows\n# Ctrl+b 1, Ctrl+b 2, etc.\n\n# Create additional windows\ntmux new-window -t myproject -n shell\n\n# Detach and reattach later\n# Ctrl+b d\ntmux attach-session -t myproject\n```\n\n### Multiple Projects\n\nEach project gets its own tmux session based on the `name` field:\n\n```bash\n# Project A (session: \"webapp\")\ncd ~/projects/webapp\ntaskmux start\n\n# Project B (session: \"api\") \ncd ~/projects/api\ntaskmux start\n\n# Both run simultaneously with separate sessions\ntmux list-sessions\n# webapp: 4 windows\n# api: 2 windows\n```\n\n## Architecture\n\nTaskmux is built with modern Python tooling:\n\n- **libtmux**: Reliable Python API for tmux session management\n- **Typer**: Modern CLI framework with rich help and validation\n- **Rich**: Beautiful terminal output with tables and progress bars\n- **WebSockets**: Real-time API for remote monitoring and control\n- **asyncio**: Async health monitoring and daemon capabilities\n- **Watchdog**: File system monitoring for config changes\n\n## Troubleshooting\n\n### Common Issues\n\n**Config not found**:\n```bash\nError: Config file taskmux.json not found\n```\n- Ensure `taskmux.json` exists in current directory\n- Check JSON syntax with `jq . taskmux.json`\n\n**Session already exists**:\n```bash\nSession 'myproject' already exists\n```\n- Kill existing session: `taskmux stop`\n- Or attach to it: `tmux attach-session -t myproject`\n\n**Task not restarting**:\n- Check if task name exists: `taskmux list`\n- Verify session is running: `taskmux status`\n- Check task health: `taskmux health`\n\n**libtmux connection issues**:\n- Ensure tmux is installed and in PATH\n- Try restarting tmux server: `tmux kill-server`\n\n### Debug Mode\n\nView detailed tmux session information:\n```bash\n# Check if session exists\ntmux has-session -t myproject\n\n# List windows in session \ntmux list-windows -t myproject\n\n# View logs manually\ntmux capture-pane -t myproject:taskname -p\n\n# Check daemon logs\ntail -f ~/.taskmux/daemon.log\n```\n\n## Contributing\n\nTaskmux follows modern Python development practices:\n\n1. **Modular architecture**: Separate concerns (CLI, tmux management, daemon, config)\n2. **Type hints**: Full type annotation for better IDE support\n3. **Rich CLI**: Beautiful, user-friendly command-line interface\n4. **Async support**: Background monitoring and WebSocket API\n5. **Comprehensive testing**: Test across different tmux versions and platforms\n\n## License\n\nMIT License - feel free to modify and distribute.",
"bugtrack_url": null,
"license": "MIT",
"summary": "Modern tmux development environment manager with real-time health monitoring, auto-restart, and WebSocket API",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/nc9/taskmux",
"Issues": "https://github.com/nc9/taskmux/issues",
"Repository": "https://github.com/nc9/taskmux"
},
"split_keywords": [
"daemon",
" development",
" manager",
" monitoring",
" session",
" terminal",
" tmux"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "1dac3ddafc81cc9db6abe4c1bff31bb1ca0484f70cac2f1981237f3ad0b3bd1a",
"md5": "05c94bc7e8e838baa27ad396536842be",
"sha256": "69bed8dc4c3dda97639fd736f0b49bb58062ebf4bb07790310f560225091044d"
},
"downloads": -1,
"filename": "taskmux-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "05c94bc7e8e838baa27ad396536842be",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 14352,
"upload_time": "2025-07-13T11:02:11",
"upload_time_iso_8601": "2025-07-13T11:02:11.087414Z",
"url": "https://files.pythonhosted.org/packages/1d/ac/3ddafc81cc9db6abe4c1bff31bb1ca0484f70cac2f1981237f3ad0b3bd1a/taskmux-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d727ec40c5a0e94d6bcdd1d51d8c18ae17748d72de65292b44d2aeeb67dffab1",
"md5": "28e9dbdaf59a873a96d8179513ad1090",
"sha256": "8d34abba2791b4389454c167eb55adc9e90dc94c87564f7e2a4778a6aa8be7c3"
},
"downloads": -1,
"filename": "taskmux-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "28e9dbdaf59a873a96d8179513ad1090",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 11630,
"upload_time": "2025-07-13T11:02:12",
"upload_time_iso_8601": "2025-07-13T11:02:12.238311Z",
"url": "https://files.pythonhosted.org/packages/d7/27/ec40c5a0e94d6bcdd1d51d8c18ae17748d72de65292b44d2aeeb67dffab1/taskmux-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-13 11:02:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nc9",
"github_project": "taskmux",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "taskmux"
}