Skip to main content

Quick Start

Get Chat-in-Bio running on your machine in under 5 minutes.

Prerequisites

  • Python 3.10+
  • uv (recommended) or pip
  • Node.js 18+ (for the frontend)
  • An API key for at least one LLM provider (Anthropic, OpenAI, or Google AI)

1. Clone and install

git clone https://github.com/chtbio/a2ui.git
cd a2ui
uv sync

2. Configure environment

cp .env.example .env

Open .env and set these required values:

# Generate a random secret (or use any long random string)
CHATINBIO_SECRET_KEY=your-random-secret-key-here
CHATINBIO_ADMIN_API_KEY=your-admin-api-key-here

# Set at least one LLM provider key
CHATINBIO_ANTHROPIC_API_KEY=sk-ant-...

See Configuration Reference for all options.

3. Initialize the database

uv run alembic upgrade head

This creates a chatinbio.db SQLite file in your project root.

4. Start the backend

uv run litestar run --reload

The API is now live at http://localhost:8000. Verify with:

curl http://localhost:8000/health
# {"status": "ok"}

5. Set up your profile

Use the Admin API to create your owner profile and bot config:

# Create owner profile
curl -X PUT http://localhost:8000/api/admin/owner \
-H "Authorization: Bearer your-admin-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Your Name",
"slug": "yourname",
"bio": "A short bio about you.",
"tagline": "Your tagline",
"social_links": [{"platform": "twitter", "url": "https://x.com/you"}]
}'

# Configure the bot
curl -X PUT http://localhost:8000/api/admin/bot \
-H "Authorization: Bearer your-admin-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"system_prompt": "You are a helpful assistant for my personal page.",
"greeting_message": "Hey! How can I help you today?",
"model_provider": "anthropic",
"model_name": "claude-sonnet-4-20250514",
"enabled_tools": ["links", "faq"],
"quick_actions": [{"label": "About me", "action": "about"}]
}'

6. Start the frontend

In a second terminal:

cd frontend
npm install
npm run dev

Open http://localhost:5173 — you should see your bio page with a chat widget.

Next steps