A collection of development workbenches and tools for various projects.
To set up workBenches on a new system, run:
./scripts/setup-workbenches.shThe setup script provides an interactive menu with status-driven UI:
Status Display (shown first):
- β Required dependencies (git, jq, curl) with versions
- β AI credentials configuration status
- β AI coding assistant CLIs (Claude Code, Copilot, Codex, Gemini, OpenCode)
- β Spec-driven development tools status
Interactive Menu:
- Interactive Selection (TUI) - Visual multi-select interface
- Install/update benches
- Setup/update AI credentials
- Install spec-driven development tools
- Install commands (onp, launchBench, workbench)
- View setup summary
- Exit setup
- Status-First UI - See what's installed before making changes
- Selective Updates - Update only what you need
- Auto-Install - Dependencies installed automatically based on OS
- Re-runnable - Safe to run multiple times to add components
For detailed UI flow and examples, see Setup Script UI Guide
To create a new project using installed benches, run:
./scripts/new-project.shThis script will:
- Show available project types from installed benches
- Let you select the project type (e.g., Flutter, DartWing, etc.)
- Prompt for project name and optional target directory
- Delegate to the appropriate bench-specific script
./scripts/new-project.sh # Interactive mode
./scripts/new-project.sh myapp # Interactive type selection for 'myapp'
./scripts/new-project.sh myapp ~/custom/path # Interactive type selection with custom pathThe script discovers and uses project creation scripts from installed benches, making it easy to create properly configured projects for any development stack you have installed.
To create a new development bench (workspace for a specific technology), run:
./scripts/new-bench.shThis script will:
- π€ Query AI APIs (OpenAI/Claude) for current tech stack information
- Show interactive menu of popular technologies (Go, Rust, Node.js, PHP, Ruby, etc.)
- Allow custom tech stack creation
- Generate complete bench structure with DevContainer setup
- Create project creation scripts
- Update workBenches configuration automatically
Set API keys for current technology information:
# Using OpenAI
export OPENAI_API_KEY="your-key-here"
./scripts/new-bench.sh
# Using Claude API
export ANTHROPIC_API_KEY="your-key-here"
./scripts/new-bench.sh
# Using Claude Session (browser-based auth)
# Run setup to configure: ./scripts/setup-workbenches.sh
# Session stored in ~/.claude/config.json
# Without AI keys (uses built-in tech stacks)
./scripts/new-bench.shThe script supports creating benches for any technology and will generate:
- Complete DevContainer configuration
- VS Code settings and extensions
- Project creation scripts
- Documentation and templates
- Git repository initialization
View the status of all configured AI services with color-coded indicators:
# Show status of all credentials
./scripts/check-ai-credentials.sh
# Interactive menu to update credentials
./scripts/check-ai-credentials.sh interactiveFeatures:
- π’ Green: Configured and valid
- π΄ Red: Not configured or invalid
- Shows location of each credential
- Preview of API keys (first/last 4 chars)
- Interactive update menu
workBenches supports Claude session authentication for seamless CLI access across all projects:
./scripts/setup-workbenches.sh
# Select option 3: "Claude Session Token"- Centralized authentication: One setup for all projects on your machine
- Browser-based login: Use your existing Claude account
- Secure storage: Session tokens stored in
~/.claude/config.jsonwith restricted permissions - Easy management: Helper script for accessing session in your projects
# Check session status
./scripts/claude-session-helper.sh info
# Get session key
./scripts/claude-session-helper.sh get
# Use in scripts
source ./scripts/claude-session-helper.sh
if has_claude_session; then
SESSION_KEY=$(get_claude_session_key)
# Use SESSION_KEY in your application
fiFor detailed instructions, see Claude Session Setup Guide
workBenches supports spec-driven development with spec-kit (GitHub) and OpenSpec (Fission AI) for better AI collaboration:
./scripts/setup-workbenches.sh
# Setup will check and offer to install both toolsspec-kit (GitHub Spec Kit)
- Python-based tool for spec-driven development
- Creates structured specs, plans, and tasks
- Works with Claude Code, GitHub Copilot, Cursor, and other AI assistants
- Installation:
uvx --from git+https://github.com/github/spec-kit.git specify init <project> - GitHub Repository
OpenSpec (Fission AI)
- Node.js-based lightweight spec framework
- Manages proposals, tasks, and spec changes
- Brownfield-first: great for existing projects (1βn)
- Installation:
npm install -g @fission-ai/openspec@latest - GitHub Repository | Official Site
- π Structured Planning: Define what to build before coding
- π€ AI Alignment: Keep AI assistants on track with explicit requirements
- π Living Documentation: Specs evolve with your project
- π Iterative Refinement: Review and adjust plans before implementation
- Specify - Write down what you're building (requirements, constraints)
- Plan - Create technical implementation plan
- Tasks - Break down into actionable tasks
- Implement - AI codes according to the spec
Both tools keep requirements explicit and auditable, reducing miscommunication between humans and AI coding assistants.
For detailed documentation, see Spec-Driven Development Guide
The workBenches system uses config/bench-config.json to track benches and their capabilities.
./scripts/update-bench-config.shThis script will:
- Auto-discover all installed benches (directories with .git repositories)
- Scan for project creation scripts in each bench
- Update
config/bench-config.jsonwith current state - Backup the existing configuration
You can also manually edit config/bench-config.json to:
- Add repository URLs for benches
- Define custom project script descriptions
- Add new bench types
WorkBenches uses a multi-layer Docker image architecture for efficiency and reusability:
- Layer 0: System base (Ubuntu + core utilities)
- Layer 1a: Development tools (Python, Node.js, AI CLIs)
- Layer 1b: Admin tools (Kubernetes, Cloud CLIs)
- Layer 2: Specialized bench tools (Frappe, Flutter, .NET, etc.)
Benefits:
- β‘ Fast workspace creation (< 10 seconds with pre-built images)
- π Efficient rebuilds (only changed layers rebuild)
- π― Clear separation of concerns
- π Security layers (read-only vs. action tools)
For complete documentation, see Container Architecture Guide
All workbenches are maintained as separate repositories:
- adminBenches - Administrative tools and utilities β opensoft/adminBench
- devBenches - Development environment collection:
- flutterBench β opensoft/flutterBench
- javaBench β opensoft/javaBench
- dotNetBench β opensoft/dotNetBench
- pythonBench β opensoft/pythonBench
All workbenches are maintained as separate repositories:
| Workbench | Repository | Description |
|---|---|---|
| adminBenches | opensoft/adminBench | Administrative tools and Kubernetes configs |
| flutterBench | opensoft/flutterBench | Flutter development environment with devcontainers |
| javaBench | opensoft/javaBench | Java development environment and tools |
| dotNetBench | opensoft/dotNetBench | .NET development environment with devcontainers |
| pythonBench | opensoft/pythonBench | Python development environment and tools |
To work with these, clone them separately or use git submodules.
Each workbench contains its own documentation and setup instructions. Navigate to the respective directories to get started with specific tools.
This is a public repository. Feel free to contribute improvements and suggestions.
Each workbench is maintained in its own repository. Please contribute directly to the specific repository you want to improve:
- adminBenches: opensoft/adminBench
- flutterBench: opensoft/flutterBench
- javaBench: opensoft/javaBench
- dotNetBench: opensoft/dotNetBench
- pythonBench: opensoft/pythonBench