Prerequisites
Before you begin, make sure you have:- Node.js 18 or later
- Git
- GitHub account and GitHub CLI (
gh) - Docker and Docker Compose
- ngrok (for local development without port forwarding)
Get Started
Get your agent running in two steps:Scaffold a new project
Create a new directory and initialize The Pope Bot:This creates a Next.js project with:
- Configuration files for your agent’s personality and behavior
- GitHub Actions workflows for job execution
- Docker configuration
- Agent templates
You don’t need to create a GitHub repository first — the setup wizard handles that for you.
Run the setup wizard
The interactive setup wizard configures everything:The wizard will:
- Check prerequisites - Verifies Node.js, Git, and GitHub CLI are installed
- Create GitHub repository - Creates a new repo and pushes your initial commit
- Generate GitHub token - Creates a Personal Access Token scoped to your repo
- Collect API keys - Prompts for:
- Anthropic API key (required)
- OpenAI API key (optional)
- Brave API key (optional, for web search)
- Configure secrets - Sets GitHub repository secrets and variables
- Generate .env - Creates your local environment configuration
- Build and start - Runs
npm run buildand starts Docker containers
The wizard asks “Would you like agent jobs to use different LLM settings?” This lets you use different models for chat (fast responses) vs agent jobs (complex tasks).
Access your agent
When the wizard finishes, visit your
APP_URL to access the web interface.For local development, this is typically:http://localhost(if you have port forwarding)https://your-subdomain.ngrok.io(if using ngrok)
What Gets Created
After runninginit and setup, your project contains:
Using Your Agent
Web Chat
The web interface provides:- Real-time chat with your agent
- Job creation and management
- File uploads
- Conversation history
Telegram (Optional)
To connect a Telegram bot:- Prompt for your Telegram bot token
- Register the webhook with Telegram
- Update your configuration
Webhook API
Create jobs programmatically:Scheduled Jobs
Editconfig/CRONS.json to schedule recurring tasks:
Action Types
The Pope Bot supports three action types:agent - LLM-powered tasks
agent - LLM-powered tasks
Spins up a Docker container with Pi or Claude Code to execute complex tasks that require reasoning.
- Uses LLM: Yes
- Runtime: Minutes to hours
- Cost: LLM API calls + GitHub Actions minutes
- Use for: Code changes, analysis, complex workflows
command - Shell commands
command - Shell commands
Runs a shell command directly on the event handler (your server).
- Uses LLM: No
- Runtime: Milliseconds to seconds
- Cost: Free
- Use for: Scripts, system commands, quick tasks
webhook - HTTP requests
webhook - HTTP requests
Makes an HTTP request to an external service.
- Uses LLM: No
- Runtime: Milliseconds to seconds
- Cost: Free
- Use for: API calls, integrations, notifications
Customizing Your Agent
Personality
Editconfig/SOUL.md to define your agent’s personality, expertise, and behavior:
Skills
Activate skills by symlinking them intoskills/active/:
Next Steps
Installation
Detailed prerequisites and troubleshooting
Configuration
Learn about environment variables and settings
Personality
Customize agent personality and behavior
Deployment
Deploy to a VPS with HTTPS
Common Issues
Docker containers won't start
Docker containers won't start
Make sure Docker Desktop is running and you have enough resources allocated.
GitHub Actions not triggering
GitHub Actions not triggering
Verify that:
- You’ve pushed to GitHub (
git push origin main) - GitHub Actions are enabled in your repository settings
- The
RUNS_ONvariable is set correctly (github-hostedfor free tier)
ngrok URL keeps changing
ngrok URL keeps changing
On the free plan, ngrok URLs change on every restart. Either:
- Upgrade to ngrok paid plan for a static domain
- Use
npx thepopebot set-var APP_URL <new-url>after each restart - Deploy to a VPS with a real domain