Skip to content

langhuihui/rebebuca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

204 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rebebuca

Rebebuca Logo

Run Configuration Management Tool

Launch instantly with a single command — no installation required, just Node.js 18+

npm Node.js Vue TypeScript License

Official Website | 中文文档 | English


🚀 Quick Start

npx rebebuca

That's it! Rebebuca starts a local web server and opens your browser automatically.

Options

npx rebebuca --port 8080          # Custom port (default: 3000)
npx rebebuca 8080                 # Shorthand for --port 8080
npx rebebuca --host 0.0.0.0       # Expose on all network interfaces
npx rebebuca --no-open            # Don't open browser automatically
npx rebebuca --no-mcp             # Disable MCP routes on the same port
npx rebebuca --help               # Show all options

Headless CLI (no web server)

Useful for scripts, terminals, and AI agents that prefer a plain CLI over MCP.

# List CLI flags / subcommands, saved user tasks, or both (--json for machine-readable)
npx rebebuca list options
npx rebebuca list tasks
npx rebebuca list all --json

# Run a saved user task by exact id or fuzzy match on name (see note below)
npx rebebuca run <id-or-name>

# Run an arbitrary shell command (login shell), without starting Rebebuca
npx rebebuca -- pnpm test

# Install tab completion (fuzzy task suggestions for: rebebuca run <tab>)
eval "$(npx rebebuca complete zsh)"
source <(npx rebebuca complete bash)

Task source for list / run: tasks are read from userGroups in ~/.rebebuca/store.json (user-defined groups in the app). Folder-scanned tasks (VS Code / npm scripts, etc.) are not included until they exist in that store.

Restrictions: run does not execute SSH-only tasks, “system terminal” tasks, or other modes that require the full UI.

Requirements: Node.js 18 or higher


✨ Features

  • 🚀 Quick Launch - Create and run configurations with one click, no need to memorize complex commands
  • Real-time Output - View command execution results in real-time with multi-tab support
  • 📝 Configuration Management - Support for advanced options like working directory and environment variables
  • 🕒 History Tracking - Automatically save run history for easy re-execution
  • 🎨 Modern UI - Beautiful dark theme interface built with Naive UI
  • 💾 Persistent Storage - Configurations and history data are automatically saved and persist across restarts
  • 🖥️ Cross-platform - Supports Windows, macOS, and Linux
  • 🌐 Web-based - Runs entirely in your browser via a local Node.js HTTP server
  • ⌨️ CLI - list, run, -- <cmd>, and shell completion for automation and AI workflows

📸 Preview

Application Screenshot - Light Theme

Application Screenshot - Dark Theme

🛠️ Tech Stack

Frontend

  • Vue 3 - Progressive JavaScript framework
  • TypeScript - Type-safe JavaScript superset
  • Naive UI - Modern Vue 3 component library
  • Pinia - Lightweight state management library for Vue
  • Vite - Next generation frontend build tool

Backend (Node.js)

  • Node.js - HTTP + WebSocket server (replaces Rust/Tauri)
  • node-pty - Native PTY terminal emulation
  • ws - High-performance WebSocket library

📦 Development Setup

Prerequisites

  • Node.js >= 18.0.0
  • npm or pnpm

Development Server

  1. Install dependencies
npm install
  1. Start development server (mock backend)
npm run dev:web
  1. Start with Node.js backend (full server mode)
npm run dev:server
  1. Build the npm-publishable bundle
npm run build:server-app

⌨️ Web UI

Running configurations

  • Click the play button ▶️ next to a configuration in the left sidebar
  • The command runs in a new tab with live output
  • Multiple configurations can run at once

Managing tabs

  • Restart — run the same configuration again
  • Stop — terminate the process
  • Clear — clear console output
  • Scroll to Bottom — jump to the latest output
  • Edit — change the configuration for the current tab

Run history

  • The side panel shows recent runs
  • Use rerun to execute a past command again
  • History can be cleared

📁 Project Structure

rebebuca/
├── app/                      # Nuxt 3 app (UI)
│   └── pages/
├── src/                      # Shared Vue/TS (used by app)
│   ├── components/          # Vue components
│   └── stores/              # Pinia state management
├── node-server/              # Node.js HTTP + WebSocket server
│   ├── server.js
│   ├── cli-subcommands.js    # Headless CLI (list / run / completion)
│   └── handlers/
├── bin/rebebuca.js          # CLI entry (npx rebebuca)
├── dist/server/             # Built static UI (from Nuxt generate)
├── public/                  # Static assets
└── package.json             # Project dependencies

🔨 Building

Development

# Frontend dev (Vite) + backend runs separately
pnpm dev:server

Production build (for npm / npx rebebuca)

pnpm run build:server-app

This runs Nuxt static build and outputs to dist/server. The Node server serves from that directory.

Release & publish to npm

Push a version tag to trigger GitHub Actions to build and publish:

./scripts/release.sh 0.5.6   # bumps version, commits, creates v0.5.6, pushes

CI runs build:server-app then pnpm publish. Ensure NPM_TOKEN is set in repo secrets.

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork this repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 Development Guidelines

Recommended IDE Setup

Code Standards

  • Use TypeScript strict mode
  • Follow Vue 3 Composition API best practices
  • Use <script setup> syntax sugar
  • Keep code clean and maintainable

📄 License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.

🙏 Acknowledgments

  • Vue.js - Progressive JavaScript framework
  • Nuxt - Vue-based static/build setup
  • Naive UI - Beautiful Vue 3 component library
  • Vite - Fast frontend build tool

Made with ❤️

If this project helps you, please give it a ⭐️

About

A modern desktop application that helps developers quickly manage and execute various commands and scripts. Supports working directory, environment variables, and real-time output.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors