A monorepo of execution-focused tools for accelerating human-AI workflows
cofy-x = Coordination + Fly + X
Coordination through human-AI collaboration. Fly through accelerated execution. X for infinite AI-powered possibilities.
x-workbench is a collection of small, independent tools designed to improve content creation workflows. Each tool provides both a web UI and CLI interface, focusing on practical tasks like video processing, logo generation, subtitle creation, and format conversion.
Key features:
- 🚀 One-command deployment — Docker gateway runs all tools with zero configuration
- 🎯 Web + CLI — Use the browser UI or automate via command line
- 🔧 Independent tools — Each tool works standalone, no cross-dependencies
- 🎬 Media-focused — Built for video creators, designers, and content producers
Run all tools in one container with automatic routing:
docker pull ghcr.io/cofy-x/x-workbench:latest
docker run -d --name x-workbench \
-p 8080:8080 \
-v "$(pwd)/generated:/app/generated" \
ghcr.io/cofy-x/x-workbench:latestOpen http://localhost:8080 to access the gateway.
# Install dependencies
pip install uv
uv sync
# Start a specific tool
make serve TOOL=video_kit| Tool | Description | Use Case |
|---|---|---|
| video_kit | FFmpeg video processing | Speed up demos, cut segments, resize, convert to GIF |
| multi_format_exporter | Batch video format export | Export one video to TikTok, YouTube, Instagram formats |
| subtitle_studio | Speech-to-subtitle transcription | Auto-generate and burn-in subtitles using Whisper |
| storyboard_builder | Video frame extraction | Create contact sheets and timeline summaries |
| logo_generator | Brand logo generation | Generate icon and logo variants for light/dark modes |
| workbench_topology | Streamlit + Graphviz topology editor | Visualize and edit gateway, tool, and output relationships |
# Web UI
make serve TOOL=video_kit
# CLI
uv run python tools/video_kit/app.py --process -i demo.mp4 --speed 2.67# Export to TikTok (1080x1920), YouTube (1920x1080), and Square (1080x1080)
uv run python tools/multi_format_exporter/app.py --process -i video.mp4 \
--preset tiktok --preset youtube --preset square# Auto-transcribe and burn-in subtitles
uv run python tools/subtitle_studio/app.py --process -i video.mp4 \
--lang auto --model small --burn-in --style clean# Launch Streamlit topology editor
make serve TOOL=workbench_topologySee individual tool READMEs for complete documentation.
The Docker gateway provides a unified interface to all tools through Nginx reverse proxy.
flowchart LR
Client["Browser"]
subgraph Container["Docker Container"]
Gateway["Nginx Gateway (:8080)"]
Tools["Tool Services"]
Storage["Shared Output (/app/generated)"]
end
Client --> Gateway
Gateway --> Tools
Gateway --> Storage
Tools --> Storage
Key components:
- Nginx — Single entry point, handles routing and static file serving
- Tool Services — Each tool runs independently on internal ports
- Shared Storage — All tools write to
/app/generated, mounted from host
Tool services are managed internally by Supervisor (process manager).
Using Makefile:
make docker-build
make docker-runOr Docker directly:
docker build -t x-workbench:latest .
docker run -d --name x-workbench \
-p 8080:8080 \
-v "$(pwd)/generated:/app/generated" \
-v x-workbench-whisper-cache:/data/hf \
x-workbench:latest/— Gateway landing page with tool links/healthz— Health check endpoint/tools/<tool_name>/— Individual tool web UIs/generated/— Static file serving for outputs
| Host Path | Container Path | Purpose |
|---|---|---|
./generated |
/app/generated |
Persistent storage for all generated files |
x-workbench-whisper-cache |
/data/hf |
Hugging Face model cache for subtitle_studio |
# View logs
make docker-logs
# Stop container
make docker-stop
# Restart
docker restart x-workbench- Python >= 3.13
- uv for dependency management
- ffmpeg for video tools
- Graphviz binaries for topology rendering
# macOS
brew install ffmpeg
brew install graphviz
# Ubuntu/Debian
sudo apt install ffmpeg
sudo apt install graphviz# Clone repository
git clone https://github.com/cofy-x/x-workbench.git
cd x-workbench
# Install dependencies
pip install uv
uv sync
# List available tools
make list-tools
# Run a specific tool
make serve TOOL=video_kitx-workbench/
├── tools/ # All tools live here
│ ├── <tool_name>/
│ │ ├── app.py # Python service entrypoint
│ │ ├── web/index.html # Tool web assets (or placeholder)
│ │ └── README.md # Tool-specific docs
│ └── _shared/ # Shared utilities
├── docker/ # Docker configuration
│ ├── landing/ # Gateway landing page
│ ├── nginx/ # Nginx templates
│ ├── runtime/ # Entrypoint script
│ └── supervisor/ # Process manager config
├── generated/ # Output directory (gitignored)
├── Dockerfile # Multi-stage build
├── Makefile # Task runner
├── pyproject.toml # Python dependencies
└── uv.lock # Locked dependencies
-
Create tool directory structure:
mkdir -p tools/my_tool/web touch tools/my_tool/app.py touch tools/my_tool/web/index.html touch tools/my_tool/README.md
-
Implement
app.pyfollowing existing tool patterns -
Add dependencies to
pyproject.tomlif needed:uv add <package-name>
-
Run checks:
make check TOOL=my_tool
-
Test locally:
make serve TOOL=my_tool
The Docker gateway will automatically discover and route to your new tool on next build.
# Syntax checks for all tools
make check-all
# Smoke test generation
make generate TOOL=logo_generator BRAND=TestBrand
# Docker smoke test
make docker-build
make docker-run
curl http://localhost:8080/healthzGitHub Actions automatically:
- ✅ Runs syntax checks on all tools
- ✅ Performs smoke tests (CLI and Docker gateway)
- ✅ Builds and pushes Docker images to GHCR on merge to
main
Images are available at: ghcr.io/cofy-x/x-workbench:latest
Contributions are welcome! This project follows these principles:
- Keep tools independent — No cross-tool dependencies
- Simple is better — Python script + static HTML over complex frameworks
- Fast iteration — Local development should be instant
- Consistent conventions — Follow existing patterns in
AGENTS.md
To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-tool) - Make your changes and test locally
- Run
make check-allto verify - Submit a pull request
Licensed under Apache-2.0. See LICENSE for details.
- 📖 Documentation: Check individual tool READMEs in
tools/*/README.md - 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Built with ❤️ by the cofy-x team