Comprehensive Quick Start Guide
Complete beginner's guide to getting started with ElizaOS, from installation to deployment
Get up and running with ElizaOS in 15 minutes or less! This guide covers everything you need to know to create your first AI agent.
Prerequisites
Before starting, ensure you have:
- Node.js (v23.3.0 or higher)
- Bun (v1.2.15 or higher) - Install Bun
- Git for version control
- A text editor (VS Code recommended)
Quick Environment Check
# Check your versions
node --version # Should be v23.3.0+
bun --version # Should be 1.2.15+
git --version # Any recent version
Choose Your Path
ElizaOS offers different approaches based on your needs:
Path 1: Standalone Agent (Recommended for Beginners)
Best for: Single agent, quick deployment, learning Time: 5-10 minutes
Path 2: Plugin Development
Best for: Building reusable components, extending ElizaOS Time: 15-20 minutes
Path 3: Monorepo Development
Best for: Multiple agents, core contributions, advanced features Time: 30+ minutes
Path 1: Standalone Agent (Quickest Start)
Step 1: Install ElizaOS CLI
# Install globally
npm install -g @elizaos/cli
# Verify installation
elizaos --version
Step 2: Create Your First Agent
# Create a new agent project
elizaos create -t project my-first-agent
cd my-first-agent
# The CLI will automatically:
# - Create project structure
# - Install dependencies
# - Generate basic configuration
Step 3: Configure Your Agent
Edit the character file:
# Open your agent's character file
code src/character.ts
Basic character configuration:
// src/character.ts
export const character = {
name: "Alex",
bio: "A helpful AI assistant that loves to chat and help users with their questions.",
// Basic personality traits
personality: [
"helpful and friendly",
"curious about the world",
"patient and understanding",
"loves to learn new things",
],
// How the agent should behave
behavior: [
"Always be polite and respectful",
"Ask clarifying questions when needed",
"Provide helpful and accurate information",
"Maintain a positive attitude",
],
// Example conversations
knowledge: [
"I can help with general questions and conversations",
"I enjoy discussing technology, books, and current events",
"I'm here to assist and make your day better",
],
};
Step 4: Set Up Environment Variables
# Copy environment template
cp .env.example .env
# Edit with your API keys
code .env
Essential environment variables:
# .env
# Required: Choose your AI model provider
OPENAI_API_KEY=your_openai_key_here
# OR
ANTHROPIC_API_KEY=your_anthropic_key_here
# Optional: Add platform integrations
DISCORD_TOKEN=your_discord_token
TWITTER_API_KEY=your_twitter_key
Step 5: Run Your Agent
# Start development mode (with hot reload)
elizaos dev
# OR start production mode
elizaos start
Your agent is now running!
Step 6: Test Your Agent
Open another terminal and test your agent:
# Test with CLI
elizaos test
# Or interact directly (if using terminal client)
# Your agent will respond to messages based on its character
Path 2: Plugin Development
Step 1: Create a Plugin
# Create a new plugin
elizaos create -t plugin weather-bot
cd plugin-weather-bot
Step 2: Implement Your Plugin
// src/plugin.ts
import { Plugin } from "@elizaos/core";
import { weatherAction } from "./actions/weather";
export const weatherPlugin: Plugin = {
name: "weather",
version: "1.0.0",
description: "Provides weather information",
actions: [weatherAction],
providers: [],
evaluators: [],
};
export default weatherPlugin;
Step 3: Create an Action
// src/actions/weather.ts
import { Action, IAgentRuntime, Memory, State } from "@elizaos/core";
export const weatherAction: Action = {
name: "GET_WEATHER",
similes: ["weather", "forecast", "temperature"],
description: "Get weather information for a location",
validate: async (runtime: IAgentRuntime, message: Memory) => {
const text = message.content.text.toLowerCase();
return text.includes("weather") || text.includes("forecast");
},
handler: async (runtime: IAgentRuntime, message: Memory, state: State) => {
// Simple weather response (integrate with real API)
const location = extractLocation(message.content.text);
return {
text: `The weather in ${location} is sunny and 72°F. Perfect day to go outside!`,
content: {
weather: {
location,
temperature: 72,
condition: "sunny",
},
},
};
},
examples: [
[
{
user: "user",
content: { text: "What's the weather like in New York?" },
},
{
user: "agent",
content: { text: "The weather in New York is sunny and 72°F. Perfect day to go outside!" },
},
],
],
};
function extractLocation(text: string): string {
// Simple location extraction logic
const match = text.match(/weather.*in\s+([A-Za-z\s]+)/i);
return match ? match[1].trim() : "your area";
}
Step 4: Test Your Plugin
# Start development
elizaos dev
# Run tests
elizaos test
Path 3: Monorepo Development
Step 1: Clone the Repository
# Clone ElizaOS repository
git clone https://github.com/elizaos/eliza.git
cd eliza
# Install dependencies
bun install
# Build all packages
bun run build
Step 2: Create Your Package
# Create a new plugin in the monorepo
cp -r packages/plugin-starter packages/plugin-myservice
cd packages/plugin-myservice
Step 3: Update Configuration
// package.json
{
"name": "@elizaos/plugin-myservice",
"description": "My custom service plugin",
"version": "1.0.16",
"dependencies": {
"@elizaos/core": "workspace:*"
}
}
Step 4: Develop in Monorepo
# Start full development environment
bun run dev
# Test your changes
bun test --filter=./packages/plugin-myservice
Platform Integration
Discord Bot Setup
-
Create Discord Application
- Go to Discord Developer Portal
- Create new application
- Go to "Bot" section
- Create bot and copy token
-
Configure Environment
# .env DISCORD_TOKEN=your_bot_token_here DISCORD_APPLICATION_ID=your_application_id
-
Add to Server
- Generate invite link with bot permissions
- Add bot to your Discord server
Twitter Integration
-
Twitter Developer Account
- Apply for Twitter Developer account
- Create new app and get API keys
-
Configure Environment
# .env TWITTER_API_KEY=your_api_key TWITTER_API_SECRET=your_api_secret TWITTER_ACCESS_TOKEN=your_access_token TWITTER_ACCESS_TOKEN_SECRET=your_access_token_secret
Telegram Integration
-
Create Telegram Bot
- Message @BotFather on Telegram
- Follow instructions to create bot
- Get bot token
-
Configure Environment
# .env TELEGRAM_BOT_TOKEN=your_bot_token
Common Issues & Solutions
Issue: Permission Denied
# Fix: Install with proper permissions
sudo npm install -g @elizaos/cli
# Or use alternative installation
npx @elizaos/cli create -t project my-agent
Issue: Build Failures
# Clean and rebuild
bun run clean
bun install
bun run build
Issue: Missing Dependencies
# Check Node.js version
node --version
# Update if needed
# Visit https://nodejs.org for latest version
# Reinstall dependencies
rm -rf node_modules bun.lockb
bun install
Issue: API Key Errors
# Check environment variables
echo $OPENAI_API_KEY
# Verify .env file exists and has correct format
cat .env
Next Steps
For Standalone Agents
- Customize Character: Refine personality and behavior
- Add Integrations: Connect to Discord, Twitter, etc.
- Deploy: Use cloud services or VPS
- Monitor: Set up logging and monitoring
For Plugin Development
- Add Features: Implement more actions and providers
- Write Tests: Create comprehensive test suite
- Documentation: Document your plugin API
- Publish: Share with the community
For Monorepo Development
- Explore Codebase: Understand core architecture
- Contribute: Submit improvements to core
- Advanced Features: Build complex multi-agent systems
- Community: Join development discussions
Learning Resources
Documentation
Community
- Discord Server - Get help and share projects
- GitHub Discussions - Technical discussions
- Twitter - Updates and announcements
Examples
Deployment Quick Reference
Local Development
elizaos dev # Development with hot reload
elizaos start # Production start
elizaos test # Run tests
Production Deployment
# Build for production
bun run build
# Start with PM2 (process manager)
pm2 start dist/index.js --name "my-agent"
# Or use Docker
docker build -t my-agent .
docker run -d --name my-agent my-agent
Cloud Deployment
- Railway: One-click deployment
- Vercel: Serverless deployment
- AWS/GCP: Container deployment
- Digital Ocean: VPS deployment
Troubleshooting Checklist
Before asking for help, check:
- Node.js version is v23.3.0+
- Bun is installed and working
- All dependencies are installed
- Environment variables are set correctly
- API keys are valid and have proper permissions
- Character file is properly formatted
- Build completed successfully
Get Help
If you're stuck:
- Check Documentation: Search our docs for solutions
- Community Discord: Ask questions in #support
- GitHub Issues: Report bugs or request features
- Examples: Look at working examples for reference
Welcome to ElizaOS! Your AI agent journey starts here.