chatbot-creator-skill
NewA Claude Code skill that scaffolds a complete, multi-provider LLM chatbot web app from a single command
Overview
Chatbot Creator
You are building a complete, standalone LLM chatbot application from scratch.
Reference files: All verbatim file contents live in references/. Read each reference file once at the step that needs it — do not re-read on every file write.
Required structure:
SKILL.md,references/, andscripts/must exist in the same directory. The skill reads fromreferences/at build time and runsscripts/validate_scaffold.pyat the end.
When to Invoke
Invoke this skill when the user asks to:
- •"build me a chatbot" / "create a chat app" / "make a chatbot application"
- •"scaffold a chatbot" / "new chatbot project" / "set up a chat app from scratch"
- •Any request to create a full-stack LLM chat application with a FastAPI backend and React frontend
Do not invoke for:
- •Adding chat features to an existing app
- •Modifying or extending an already-scaffolded chatbot project
- •General LLM API questions without a build request
This Skill Does NOT
- •Deploy to any cloud provider — no Docker, Heroku, or Fly.io config
- •Configure PostgreSQL or any other database — SQLite only out of the box
- •Set up OAuth or social login — email/password auth only
- •Generate tests or CI/CD pipelines
- •Modify or extend an existing project's architecture
Stack & Versions
| Layer | Technology |
|---|---|
| Backend | Python 3.11+, FastAPI 0.104, SQLAlchemy 2.0, LangGraph ≥0.2, SQLite (default) |
| Frontend | React 18, TypeScript 5, Vite 5, React Router v6 |
| Auth | JWT (PyJWT + HS256), bcrypt password hashing |
| Streaming | WebSocket (browser native + FastAPI WebSocket) |
Project Structure
backend/
app/
__init__.py
main.py ← FastAPI app + lifespan + CORS + routers
config.py ← pydantic-settings; reads .env
database.py ← SQLAlchemy engine + SessionLocal + get_db
models/
__init__.py
user.py
chat.py
schemas/
__init__.py
auth.py
chat.py
api/
__init__.py
auth.py ← /api/auth/register, /login, /logout, /me
chat.py ← REST CRUD + WebSocket /api/chat/ws/{id}?token=<jwt>
services/
__init__.py
chat_graph.py ← LangGraph: MemorySaver, build_graph(), stream_response()
utils/
__init__.py
security.py ← JWT encode/decode, password hash/verify, revocation
requirements.txt
.env.example
frontend/
src/
main.tsx
App.tsx
api/
client.ts
auth.ts
chat.ts
hooks/
useAuth.ts
useChat.ts
pages/
Login.tsx
Register.tsx
Chat.tsx
components/
ProtectedRoute.tsx
SessionList.tsx
MessageList.tsx
ChatInput.tsx
ProviderBadge.tsx
types/
index.ts
styles/
index.css
package.json
vite.config.ts
tsconfig.json
.env.exampleBuild Steps
Step 1 — Backend config files
Before writing any files, check whether backend/ or frontend/ directories already exist in the current working directory. If either exists, list every file from scripts/validate_scaffold.py's EXPECTED_FILES that is already present, then print:
⚠️ The following files already exist and will be overwritten:
<list each existing file, one per line>
Type "yes" to continue and overwrite, or anything else to abort.Wait for the user's response. Proceed only if they type exactly "yes". Otherwise stop immediately.
Read `references/backend-reference.md` now (once — keep it in context for all of Step 2).
Create backend/requirements.txt and backend/.env.example — copy verbatim from Backend Reference.
Step 2 — Backend Python files (dependency order)
Files marked ✦ are copied verbatim from references/backend-reference.md. Files without ✦ are either empty or have a one-line description that is sufficient to generate them correctly.
backend/app/__init__.py— empty filebackend/app/config.py✦backend/app/database.py✦backend/app/models/__init__.py— imports User, ChatSession, ChatMessagebackend/app/models/user.py✦backend/app/models/chat.py✦backend/app/schemas/__init__.py— emptybackend/app/schemas/auth.py✦backend/app/schemas/chat.py✦backend/app/utils/__init__.py— emptybackend/app/utils/security.py✦backend/app/services/__init__.py— emptybackend/app/services/chat_graph.py✦backend/app/api/__init__.py— emptybackend/app/api/auth.py✦backend/app/api/chat.py✦backend/app/main.py✦
⚠️ Common pitfalls
- Windows venv: use
venv\Scripts\activate, notsource venv/bin/activate- Python version: confirm
python --versionshows 3.11+ before creating the venv- Port conflict: if port 8000 is taken, change the uvicorn command and update
CORS_ORIGINSin.envto match- WebSocket auth: the token travels as a query string (
?token=<jwt>); some reverse proxies strip query strings — note this if the user deploys behind nginx or Caddy
Step 3 — Frontend config files
Read `references/frontend-reference.md` now (once — keep in context for all of Step 4).
Create frontend/package.json, frontend/vite.config.ts, frontend/tsconfig.json, frontend/tsconfig.node.json, frontend/.env.example — copy verbatim from Frontend Reference.
Also create frontend/index.html — standard Vite HTML shell with <div id="root"> and <script type="module" src="/src/main.tsx">.
Step 4 — Frontend TypeScript/TSX files (dependency order)
All files in this step are copied verbatim from references/frontend-reference.md.
frontend/src/types/index.tsfrontend/src/api/client.tsfrontend/src/api/auth.tsfrontend/src/api/chat.tsfrontend/src/hooks/useAuth.tsfrontend/src/hooks/useChat.tsfrontend/src/components/ProtectedRoute.tsxfrontend/src/components/ProviderBadge.tsxfrontend/src/components/SessionList.tsxfrontend/src/components/MessageList.tsxfrontend/src/components/ChatInput.tsxfrontend/src/pages/Login.tsxfrontend/src/pages/Register.tsxfrontend/src/pages/Chat.tsxfrontend/src/App.tsxfrontend/src/main.tsxfrontend/src/styles/index.css
⚠️ TypeScript check: After all frontend files are written, run
npm run buildinfrontend/to confirm zero TypeScript errors before the user customizes anything.
Step 5 — Validate and print startup instructions
Run the validation script to confirm all files were created:
python scripts/validate_scaffold.pyIf any files are missing, re-run the relevant build step before continuing. Once all files are present, read references/startup-instructions.md and print its contents exactly as written.
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/chatbot-creator-skill.md https://raw.githubusercontent.com/Preetam3620/chatbot-creator-skill/main/SKILL.md/chatbot-creator-skillFrequently Asked Questions
What is chatbot-creator-skill?
A Claude Code skill that scaffolds a complete, multi-provider LLM chatbot web app from a single command
How to install chatbot-creator-skill?
To install chatbot-creator-skill, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /chatbot-creator-skill.
What is chatbot-creator-skill best for?
chatbot-creator-skill is a community categorized under Development. Created by Preetam3620.