/00. Claude Plugins
A Claude Code plugin is a folder of skills, agents, hooks, and slash commands that Claude installs per project. 28 plugins, 68 skills here.
/plugin marketplace add aiocean/claude-plugins
/plugin install <plugin-name>@aiocean-plugins
Skills load when their description matches your message, hooks fire on
tool-call events, agents spawn on the Agent tool. Idle plugins cost
nothing — browse plugins or read the guides.
Folders
Articles
- Send books to your BOOX from the terminal01
- Patching Claude Code: rebalance the built-in prompts (and more)02
- Install Claude Code plugins in two commands03
- My CLAUDE.md04
- Three Claude Code primitives, three different jobs05
- Writing CLAUDE.md: the sections that actually help06
- aio-architect-advisor07
- aio-architect-reference08
- aio-atlassian09
- aio-boox10
- aio-browser-cookie11
- aio-bun-fullstack-setup12
- aio-catch-me-up13
- aio-code-review14
- aio-dashboard-design15
- aio-debug16
- aio-discover17
- aio-doc-writer18
- aio-dream19
- aio-epub-analyze20
/02. aio-bun-fullstack-setup
/plugin install aio-bun-fullstack-setup@aiocean-plugins
aio-bun-fullstack-setup
Starting a fullstack project with Bun involves more repetitive setup than it should: a server that proxies to Vite in development but serves static files directly in production, config validation that fails fast on missing env vars, PM2 to run both processes side by side, a multi-stage Dockerfile that builds the frontend then discards those dev dependencies. None of this is hard, but assembling it correctly every time is friction.
This plugin eliminates that friction. It scaffolds the complete monorepo structure in one shot, detects what already exists so it never overwrites your work, and generates only the missing pieces. The result is a project that runs cleanly in development (pm2 start ecosystem.config.cjs) and deploys cleanly in production (docker compose up) with zero leftover configuration work.
The architecture it sets up
Development:
Vite (port 3000) --proxy /api --> Bun server (port 3001)
Production:
Bun server (port 3000) serves both:
/api/* --> API handlers
/* --> Static files from webapp/dist
Single port in production means one reverse proxy rule, one health check endpoint, one exposed container port. The Vite proxy in development means hot module replacement works without CORS configuration.
What gets generated
| File | Purpose |
|---|---|
pkgs/server/config.ts | Env validation — fails at startup if required vars are absent |
pkgs/server/index.ts | Bun server entry, dual-mode (API-only in dev, API + static in prod) |
pkgs/webapp/vite.config.ts | Vite with /api proxy pointing at the server |
ecosystem.config.cjs | PM2 config to run webapp and server concurrently in dev |
Dockerfile | Multi-stage build: frontend stage, then production stage |
docker-entrypoint.sh | Single exec bun run index.ts |
docker-compose.yml | Service definition with data volume |
.env.example | Documents every env var the server expects |
Install
/plugin install aio-bun-fullstack-setup@aiocean-plugins
How it works
Say "scaffold bun project" or "setup bun fullstack". The skill first checks what already exists in your project root, then presents a plan of what it will create before generating anything. Files that already exist are left untouched.
After generation it runs a quick smoke test — starts the server, hits /api/health, shuts it down — so you know the scaffold actually works before you build on it.
Trigger phrases: "scaffold bun", "bun fullstack", "bun server", "vite proxy", "bootstrap bun project", "single port", "monorepo bun", "docker bun".
Requirements
- Bun installed (
bun --version)
Skills (1)
- aio-bun-fullstack-setup — Bootstrap or scaffold a Bun fullstack project in one shot — single-port server, Vite dev proxy, monorepo layout, and Docker config. Use when starting a new full…