Generic command execution dashboard with configurable commands via JSON config file. Provides both a modern web UI and CLI for managing and executing shell commands.
Author: Javier Leandro Arancibia
- π― Generic Command Center: Execute any shell commands from a web UI
- βοΈ Configurable Commands: Define commands in
~/.cmdcenter/config.json - π§ CLI Management: Full CRUD operations via command-line interface
- π Command Logging: All command executions logged with timestamps and status
- π Search Logs: Search through daemon logs with filtering
- ποΈ Log Management: Clear logs when needed
- π¨ Modern UI: Argentine flag color scheme with bento-grid layout
- π± Responsive Design: Works on desktop, tablet, and mobile
- π Daemon Mode: Run as background service
- π¬ Non-blocking Toasts: Custom toast notifications instead of native alerts
- π Argument Support: Commands can accept extra arguments
- π€ Agent-first: Designed for AI/agent workflows with comprehensive CLI
The easiest way to install cmdcenter is via supercli:
# Install supercli
npm install -g superacli
# Install cmdcenter plugin
sc plugins install cmdcentergit clone https://github.com/javimosch/cmdcenter.git
cd cmdcenter
go build -o cmdcenter
./cmdcenter initcmdcenter initThis creates ~/.cmdcenter/config.json with an empty commands array.
# Add a simple command
cmdcenter add --id status --name "System Status" --command "uptime" --icon "π"
# Add command with argument support
cmdcenter add --id df --name "Disk Free" --command "df" --icon "πΎ" --supports-args# Start in foreground
cmdcenter start
# Start as daemon
cmdcenter start -daemon
# Start on custom port
cmdcenter start -port 3000Access the UI at http://localhost:3031
# Via CLI
cmdcenter run --id status
# With arguments (if supports-args enabled)
cmdcenter run --id df --args "-h /"cmdcenter init # Initialize config file
cmdcenter add --id <id> --name <name> --command <cmd> [--icon <emoji>] [--supports-args]
cmdcenter edit --id <id> [--name <name>] [--command <cmd>] [--icon <emoji>] [--supports-args]
cmdcenter remove --id <id>
cmdcenter list # List all commandscmdcenter run --id <id> [--args <args>] # Execute a commandcmdcenter start [-port <port>] [-daemon] # Start HTTP server
cmdcenter stop # Stop daemon
cmdcenter status # Check daemon status
cmdcenter version # Show versionConfig file location: ~/.cmdcenter/config.json
{
"title": "Command Center",
"subtitle": "Generic command execution dashboard",
"commands": [
{
"id": "status",
"name": "System Status",
"description": "Check system status",
"icon": "π",
"command": "uptime",
"supports_args": false
},
{
"id": "df",
"name": "Disk Free",
"description": "Show disk free space",
"icon": "πΎ",
"command": "df",
"supports_args": true
}
]
}id: Unique identifier (required)name: Display name (required)command: Shell command to execute (required)description: Command descriptionicon: Emoji iconsupports_args: Enable argument input modal/CLI args support
- Click command buttons to execute
- Commands with
supports_args: trueshow argument input modal - Live command output display
- Success/error feedback with custom toasts
- Add/Edit/Delete commands via UI
- Raw JSON config editing
- Live config reload
- Form validation
- View daemon logs in real-time
- Search/filter logs
- Auto-refresh every 10 seconds
- Clear logs on demand
- Non-blocking toast notifications
- Custom confirmation dialogs
- Responsive bento-grid layout
- Argentine flag color scheme
- Mobile-friendly design
./build.shThis creates two binaries:
cmdcenter-default: Standard buildcmdcenter-optimized: Optimized build
cmdcenter/
βββ main.go # CLI entry point
βββ server.go # HTTP server and UI
βββ daemon.go # Daemon management
βββ config.go # Config file handling
βββ build.sh # Build script
βββ AGENTS.md # Agent documentation
βββ README.md # This file
βββ .agents/
βββ skills/
βββ cmdcenter-cheatsheet/ # Agent skill
POST /api/command- Execute command (JSON:{"command": "id", "args": "optional"})
GET /api/config- Get current configPOST /api/config/reload- Reload config from fileGET /api/config/commands- Get all commandsPOST /api/config/commands/add- Add commandPOST /api/config/commands/edit- Edit commandPOST /api/config/commands/remove- Remove commandGET /api/config/raw- Get raw config JSONPOST /api/config/raw- Save raw config JSON
GET /api/logs- Get daemon logs (optional?search=query)POST /api/logs/clear- Clear daemon logs
GET /api/status- Server statusGET /api/health- Health check
cmdcenter is designed to be agent-first. AI agents can use the CLI for all operations without needing the web UI. See AGENTS.md for detailed agent documentation.
# Setup commands for a task
cmdcenter add --id deploy --name "Deploy" --command "./deploy.sh" --icon "π"
cmdcenter add --id test --name "Run Tests" --command "./test.sh" --icon "β
"
# Execute commands
cmdcenter run --id deploy
cmdcenter run --id test
# Cleanup
cmdcenter remove --id deploy- supercli - Plugin management and discovery
MIT
Contributions welcome! Please read AGENTS.md for agent-specific guidelines.