Automates starting and managing local dev environments.
Install
mkdir -p .claude/skills/devserver && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13338" && unzip -o skill.zip -d .claude/skills/devserver && rm skill.zipInstalls to .claude/skills/devserver
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Start or restart the local dev server (backend + frontend) in a tmux sessionKey capabilities
- →Determine the project root for development servers
- →Resolve the Python virtual environment path
- →Synchronize `.env` files between worktrees
- →Check for and manage existing tmux sessions
- →Start a new tmux session for backend and frontend
- →Report server URLs and tmux attachment instructions
How it works
The skill identifies the project root, resolves the virtual environment, ensures `.env` file presence, manages existing tmux sessions, and then starts a new tmux session with two panes for the backend and frontend servers.
Inputs & outputs
When to use devserver
- →Start local development server
- →Manage tmux dev sessions
- →Sync environment variables
About this skill
Local dev server management
Manage the flyfun-apps tmux session that runs the FastAPI backend and Vite frontend dev server.
Ports: Backend 8010, Frontend 3010 (offset from flyfun-weather which uses 8000/3000).
Step 1 — Determine the project root
Figure out the correct project root (PROJECT_ROOT):
- Use the current working directory
- If we are in a git worktree (
.gitis a file not a directory), the working directory IS the project root for that worktree
Step 2 — Resolve the venv
- If
$PROJECT_ROOT/venv/exists, use it - Otherwise check
$PROJECT_ROOT/../main/venv/(worktree case sharing main's venv) - If neither exists, tell the user and stop
Store the resolved path as VENV_PATH.
Step 3 — Check for .env file
- If
$PROJECT_ROOT/.envexists, good — nothing to do - If it does NOT exist, check if
$PROJECT_ROOT/../main/.envexists (worktree case)- If found, copy it:
cp ../main/.env $PROJECT_ROOT/.env - Tell the user it was copied
- If found, copy it:
- If neither exists, warn the user that the
.envfile is missing and the server will likely fail to start
Step 4 — Check for existing tmux session
Run: tmux has-session -t flyfun-apps 2>/dev/null
If a session exists:
-
Check what directory it's running in:
tmux display-message -t flyfun-apps -p '#{pane_current_path}' -
Compare that path to
$PROJECT_ROOT -
If the directory matches and the session looks healthy, tell the user:
Dev server already running at http://localhost:3010 — attach with
tmux attach -t flyfun-appsThen stop (no restart needed).
-
If the directory does NOT match (e.g., switched worktrees), kill the session:
tmux kill-session -t flyfun-appsThen continue to Step 5 to create a fresh one.
Step 5 — Start the tmux session
Create a new tmux session with two panes:
# Create detached session — pane 0 runs the backend
tmux new-session -d -s flyfun-apps -c "$PROJECT_ROOT"
# Pane 0: backend (FastAPI with reload on port 8010)
tmux send-keys -t flyfun-apps "source $VENV_PATH/bin/activate && cd web/server && PORT=8010 python main.py" Enter
# Create pane 1 (vertical split) for the frontend watcher
tmux split-window -h -t flyfun-apps -c "$PROJECT_ROOT/web/client"
tmux send-keys -t flyfun-apps "BACKEND_PORT=8010 npm run dev -- --port 3010" Enter
Step 6 — Report to user
Tell the user:
- Frontend running at http://localhost:3010 (with API proxy to backend)
- Backend running at http://localhost:8010
- Attach to tmux with:
tmux attach -t flyfun-apps - Pane 0 = backend (uvicorn with --reload), Pane 1 = frontend (Vite dev server)
Notes
- The
.envfile is loaded automatically by the app (shared.env_loader), no need to source it manually uvicorn --reloadwatches for Python file changes automatically- Vite dev server provides HMR for TypeScript changes
- The Vite proxy target is configured via
BACKEND_PORTenv var (defaults to 8010 in vite.config.ts) - Production uses port 8000 (docker), dev uses port 8010
- flyfun-weather uses ports 8000/3000, so these are offset to avoid clashes
When not to use it
- →When the user does not want to start or restart the local dev server
- →When the user does not have a Python virtual environment set up
- →When the user does not use tmux for session management
Prerequisites
Limitations
- →It is specific to `flyfun-apps` project structure and ports
- →It assumes the use of FastAPI for backend and Vite for frontend
- →It relies on `tmux` for session management
How it compares
This skill automates the setup and management of a local development environment within a tmux session, including virtual environment activation and `.env` synchronization, which is more integrated than manually starting servers.
Compared to similar skills
devserver side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| devserver (this skill) | 0 | 5mo | Review | Intermediate |
| interactive-shell | 0 | 1mo | No flags | Intermediate |
| resources | 1 | 2mo | Review | Intermediate |
| telegram-bot-builder | 106 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
interactive-shell
Jonghakseo
dev server, TUI, REPL, DB shell, 로그처럼 사용자 제어나 장시간 실행이 필요한 터미널 작업에 사용한다. AI 작업 위임에는 subagent를 사용한다.
resources
windmill-labs
MUST use when managing resources.
telegram-bot-builder
davila7
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.
azure-functions
aj-geddes
Create serverless functions on Azure with triggers, bindings, authentication, and monitoring. Use for event-driven computing without managing infrastructure.
reddit-api
alinaqi
Reddit API with PRAW (Python) and Snoowrap (Node.js)
engineering-skills
alirezarezvani
23 production-ready engineering skills covering architecture, frontend, backend, fullstack, QA, DevOps, security, AI/ML, data engineering, computer vision, and specialized tools like Playwright Pro, Stripe integration, AWS, and MS365. 30+ Python automation tools (all stdlib-only). Works with Claude Code, Codex CLI, and OpenClaw.