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 versionChoose 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 --versionStep 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 configurationStep 3: Configure Your Agent
Edit the character file:
# Open your agent's character file
code src/character.tsBasic 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 .envEssential 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_keyStep 5: Run Your Agent
# Start development mode (with hot reload)
elizaos dev
# OR start production mode
elizaos startYour 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 characterPath 2: Plugin Development
Step 1: Create a Plugin
# Create a new plugin
elizaos create -t plugin weather-bot
cd plugin-weather-botStep 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 testPath 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 buildStep 2: Create Your Package
# Create a new plugin in the monorepo
cp -r packages/plugin-starter packages/plugin-myservice
cd packages/plugin-myserviceStep 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-myservicePlatform 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-agentIssue: Build Failures
# Clean and rebuild
bun run clean
bun install
bun run buildIssue: 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 installIssue: API Key Errors
# Check environment variables
echo $OPENAI_API_KEY
# Verify .env file exists and has correct format
cat .envNext 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 testsProduction 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-agentCloud 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.