CommandHub is a full-stack app for organizing command-line snippets by category and group, with drag-and-drop ordering and optional AI-generated annotations.
- Category, group, and command management (CRUD)
- Drag-and-drop ordering with persistence
- Cross-container drag-and-drop for commands
- Optional AI annotation generation via OpenAI API
- Automated coverage across API, frontend unit tests, and Playwright E2E
- Frontend: React, TypeScript, Vite, Material UI, TanStack Query, dnd-kit
- Backend: Node.js, Express, TypeORM, SQLite
- Testing: Vitest, Testing Library, Playwright
- Node.js 22+ (Node 22.22.0 is pinned in
package.json) - npm 10+
npm run install:allcp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envbackend/.env values:
PORT(default5000)DATABASE_PATH(default./database.sqlite)OPENAI_API_KEY(optional, required only for annotation generation)
npm run dev- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000 - Health check:
http://localhost:5000/health
npm run dev: start frontend and backendnpm test: run backend and frontend testsnpm run test:e2e: run Playwright end-to-end drag-and-drop testsnpm run build: build backend and frontendnpm run db:reset: remove local SQLite database filesnpm run screenshot: regeneratedocs/assets/commandhub-dashboard.png
npm test
npm run test:e2eInstall browser dependencies once for Playwright:
npx playwright install chromium.
|- backend/ # Express + TypeORM API
|- frontend/ # React UI
|- tests/e2e/ # Playwright tests
|- docs/assets/ # README assets
`- scripts/ # Repository automation scripts
.envfiles are gitignored.- Only
.env.examplefiles are tracked. - Local SQLite databases are gitignored and can be reset with
npm run db:reset. - See
SECURITY.mdfor vulnerability reporting.
If CommandHub is useful to you, you can support maintenance with Ethereum:
- Address:
0x4F9548979FA0de018b6975d8b44Df80a27C2204B - Etherscan: https://etherscan.io/address/0x4F9548979FA0de018b6975d8b44Df80a27C2204B
- Start with CONTRIBUTING.md
- Follow the Code of Conduct
- Use issue and pull request templates in
.github/
MIT. See LICENSE.
