| name | elizaos |
| version | 1.2.0 |
| description | ElizaOS - TypeScript framework for building autonomous AI agents with multi-platform support (Discord, Telegram, Twitter, Farcaster), blockchain integration (EVM, Solana), plugin architecture, multi-agent orchestration, and 90+ community plugins |
ElizaOS Skill
ElizaOS is an open-source TypeScript framework for building and deploying autonomous AI agents. Created by the ai16z community, it enables developers to create agents with custom personalities that can operate across multiple platforms, trade on-chain, manage social media, create content, and interact with any API or blockchain.
Core Philosophy: "Ship Fast, Scale Freely, Truly Open" - three commands to deployment, from single characters to millions of interactions, fully open-source with community extensibility.
When to Use This Skill
This skill should be triggered when:
- Building autonomous AI agents with custom personalities
- Creating multi-platform bots (Discord, Telegram, Twitter, Farcaster)
- Developing blockchain-integrated agents (EVM, Solana DeFi)
- Implementing multi-agent orchestration systems
- Setting up RAG-based knowledge agents
- Configuring ElizaOS plugins and character files
- Deploying agents to production environments
When NOT to Use This Skill
- For simple chatbots without agent autonomy (use basic bot frameworks)
- For non-TypeScript/JavaScript projects (ElizaOS is TypeScript-native)
- For single-purpose scripts without persistent state
- For cloud function integrations only (use serverless frameworks)
Core Concepts
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ ElizaOS Architecture │
└─────────────────────────────────────────────────────────────────┘
┌──────────────────────┐
│ Character Files │
│ (Personality/Bio) │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ Agent Runtime │
│ - Memory System │
│ - State Management │
│ - Event Processing │
└──────────┬───────────┘
│
┌──────────────────────┼──────────────────────┐
│ │ │
┌───────▼───────┐ ┌────────▼────────┐ ┌───────▼───────┐
│ Plugins │ │ Providers │ │ Actions │
│ - Bootstrap │ │ - OpenAI │ │ - Message │
│ - SQL │ │ - Anthropic │ │ - Trade │
│ - Knowledge │ │ - Ollama │ │ - Analyze │
│ - Discord │ │ - Google │ │ - Create │
│ - Twitter │ │ - Grok │ │ - Execute │
│ - Telegram │ │ - OpenRouter │ │ │
│ - Solana │ │ │ │ │
│ - EVM │ │ │ │ │
└───────────────┘ └─────────────────┘ └───────────────┘
│ │ │
└──────────────────────┼──────────────────────┘
│
┌──────────▼───────────┐
│ Platform Clients │
│ Discord │ Telegram │
│ Twitter │ Farcaster │
│ Web UI │ REST API │
└──────────────────────┘
Key Components
| Component | Purpose | Description |
|---|
| Character | Identity | Defines agent personality, knowledge, behaviors, and capabilities |
| Runtime | Execution | Manages agent lifecycle, memory, providers, and event processing |
| Plugins | Extensions | Modular functionality (platforms, blockchains, actions, services) |
| Actions | Tasks | Discrete operations agents can perform (message, trade, analyze) |
| Providers | Data | Real-time information sources for agent context |
| Evaluators | Assessment | Decision-making mechanisms for agent responses |
| Memory | State | Persistent storage of interactions and learned context |
| Services | Background | Long-running processes (embedding, tasks, monitoring) |
AgentRuntime
The AgentRuntime is the central orchestrator managing the agent's lifecycle:
import { AgentRuntime } from "@elizaos/core";
const runtime = new AgentRuntime({
character: myCharacter,
plugins: [bootstrapPlugin, sqlPlugin],
providers: [...],
evaluators: [...],
actions: [...],
services: [...]
});
await runtime.initialize();
await runtime.processMessage(message, state);
Component Interfaces
interface Action {
name: string;
description: string;
validate: (runtime, message) => Promise<boolean>;
handler: (runtime, message) => Promise<Result>;
examples: MessageExample[][];
}
interface Provider {
name: string;
get: (runtime, message) => Promise<string>;
}
interface Evaluator {
name: string;
evaluate: (runtime, message) => Promise<EvaluationResult>;
}
interface Service {
name: ;
: <>;
: <>;
}
Installation
Prerequisites
- Bun (recommended) or Node.js 18+
- Git
- API keys for LLM providers (OpenAI, Anthropic, etc.)
Quick Start (4 Steps)
bun install -g @elizaos/cli
elizaos create my-agent
cd my-agent
elizaos env edit-local
elizaos start
The agent runs on http://localhost:3000 with REST API at /api.
Alternative Installation (npm)
npm install -g @elizaos/cli
elizaos create my-agent
cd my-agent
npm install
elizaos start
Development Mode
elizaos dev
LOG_LEVEL=debug elizaos start
elizaos test
CLI Reference
Core Commands
| Command | Description | Example |
|---|
elizaos create | Create new project/plugin/agent | elizaos create my-agent |
elizaos start | Launch in production mode | elizaos start |
elizaos dev | Development mode with hot-reload | elizaos dev |
elizaos env | Manage environment variables | elizaos env edit-local |
elizaos agent | Manage agents (list/start/stop) | elizaos agent list |
elizaos plugins | Manage plugins | elizaos plugins add discord |
elizaos test | Run project tests | elizaos test |
elizaos update | Update dependencies | elizaos update |
elizaos publish | Publish plugin to registry | elizaos publish |
Project Management
elizaos create my-agent
elizaos create my-plugin --plugin
elizaos env list
elizaos env edit-local
elizaos env set OPENAI_API_KEY=sk-xxx
elizaos plugins list
elizaos plugins add @elizaos/plugin-discord
elizaos plugins remove @elizaos/plugin-discord
Deployment Commands
elizaos deploy
elizaos tee deploy
elizaos containers list
elizaos containers create
elizaos containers start
elizaos containers stop
Character Configuration
Characters define agent identity, personality, and behavior.
Character File Structure
{
"name": "TradingBot",
"bio": [
"Expert cryptocurrency trader with 5 years experience",
"Specializes in DeFi protocols and yield strategies",
"Always provides risk disclaimers with advice"
],
"lore": [
"Started trading during the 2020 DeFi summer",
"Lost a fortune on Terra Luna, learned hard lessons",
"Now focuses on sustainable yield strategies"
],
"knowledge": [
"Uniswap V3 concentrated liquidity mechanics",
"Aave lending and borrowing protocols",
"MEV protection strategies"
],
"messageExamples": [
[
{ "user": "user1", "content": { "text": "Should I ape into this new token?" } },
{ "user": "TradingBot", "content": { "text": "I'd recommend checking the contract audit first. What's the liquidity depth and who are the team members? Never invest more than you can afford to lose." } }
]
],
"postExamples": [
"Just spotted an interesting arbitrage opportunity between Uniswap and SushiSwap. Remember: by the time you read this, it's probably gone. That's how fast DeFi moves.",
"PSA: Always double-check contract addresses before approving. Scammers are getting more sophisticated every day."
],
"topics": ["DeFi", "trading", "yield farming", "risk management"],
"style": {
"all": ["analytical", "cautious", "educational"],
: [, , ],
: [, , ]
},
: [, , , ],
: [
,
,
],
: {
: { : }
}
}
Character TypeScript Definition
import { Character } from "@elizaos/core";
export const myAgent: Character = {
name: "AssistantBot",
bio: "A helpful AI assistant specialized in coding",
lore: ["Created to help developers ship faster"],
knowledge: ["TypeScript", "React", "Node.js best practices"],
messageExamples: [],
postExamples: [],
topics: ["programming", "web development"],
style: {
all: ["professional", "concise"],
chat: ["helpful", "patient"],
post: ["informative"]
},
adjectives: ["helpful", "knowledgeable"],
plugins: ["@elizaos/plugin-bootstrap"],
settings: {}
};
Plugin Architecture
Plugins extend agent capabilities through modular components.
Plugin Structure
import { Plugin, Action, Provider, Evaluator, Service } from "@elizaos/core";
export const myPlugin: Plugin = {
name: "my-custom-plugin",
description: "Adds custom functionality to agents",
actions: [
{
name: "SEND_EMAIL",
description: "Send an email to a recipient",
validate: async (runtime, message) => {
return true;
},
handler: async (runtime, message) => {
return { success: true };
},
examples: [
[
{ user: "user", content: { text: "Send an email to john@example.com" } },
{ user: "agent", content: { text: "I'll send that email now." } }
]
]
}
],
providers: [
{
name: "weather",
: (runtime, message) => {
;
}
}
],
: [
{
: ,
: (runtime, message) => {
{ : , : };
}
}
],
: [
{
: ,
: (runtime) => {
},
: (runtime) => {
}
}
]
};
Core Plugins
| Plugin | Package | Purpose |
|---|
| Bootstrap | @elizaos/plugin-bootstrap | Essential message processing (required) |
| SQL | @elizaos/plugin-sql | Database operations (PostgreSQL/PGLite) |
| Knowledge | @elizaos/plugin-knowledge | RAG document ingestion and retrieval |
Bootstrap Plugin Components (Required)
The bootstrap plugin provides foundational components that most agents need:
Actions (14 built-in):
| Action | Description |
|---|
choice | Decision-making between options |
followRoom | Subscribe to room updates |
unfollowRoom | Unsubscribe from room |
ignore | Ignore specific messages/users |
imageGeneration | Generate images via AI models |
muteRoom / unmuteRoom | Room notification control |
none | No-action placeholder |
reply | Send response messages |
roles | Manage agent roles |
sendMessage | Direct message sending |
settings | Configuration management |
updateEntity | Update entity records |
Providers (18 built-in):
| Provider | Description |
|---|
actionState | Current action context |
actions | Available actions list |
anxiety | Agent anxiety/confidence levels |
attachments | File/media attachments |
capabilities | Agent capability registry |
character | Character/personality data |
choice | Decision options |
entities | Entity relationship data |
evaluators | Available evaluators |
facts | Known facts database |
providers | Provider registry |
recentMessages | Conversation history |
relationships | Entity relationships |
roles | Role assignments |
settings | Configuration values |
time | Current time context |
world | World state information |
Evaluators (2 built-in):
| Evaluator | Description |
|---|
reflection | Self-reflection and learning from interactions |
Services (3 built-in):
| Service | Description |
|---|
embedding | Text embedding generation |
task | Background task management |
Platform Plugins
| Plugin | Package | Purpose |
|---|
| Discord | @elizaos/plugin-discord | Discord bot integration |
| Telegram | @elizaos/plugin-telegram | Telegram bot integration |
| Twitter | @elizaos/plugin-twitter | Twitter/X automation |
| Farcaster | @elizaos/plugin-farcaster | Farcaster social protocol |
Blockchain Plugins
| Plugin | Package | Purpose |
|---|
| Solana | @elizaos/plugin-solana | Solana DeFi operations |
| EVM | @elizaos/plugin-evm | Ethereum/EVM chain interactions |
LLM Provider Plugins
| Plugin | Package | Purpose |
|---|
| OpenAI | @elizaos/plugin-openai | GPT-4, GPT-3.5 models |
| Anthropic | @elizaos/plugin-anthropic | Claude models |
| Google GenAI | @elizaos/plugin-google-genai | Gemini models |
| Ollama | @elizaos/plugin-ollama | Local model inference |
| OpenRouter | @elizaos/plugin-openrouter | Multi-provider routing |
Memory System
ElizaOS agents maintain persistent memory for context and learning.
Memory Types
interface Memory {
id: string;
userId: string;
agentId: string;
roomId: string;
content: {
text: string;
action?: string;
source?: string;
};
embedding?: number[];
createdAt: number;
}
await runtime.messageManager.createMemory({
content: { text: "User prefers dark mode" },
userId: userId,
roomId: roomId
});
const memories = await runtime.messageManager.getMemories({
roomId: roomId,
count: 10
});
const similar = await runtime.messageManager.searchMemoriesByEmbedding(
embedding,
{ match_threshold: 0.8, count: 5 }
);
State Management
interface State {
bio: string;
lore: string;
messageDirections: string;
postDirections: string;
actors: string;
actorsData: Actor[];
recentMessages: string;
recentMessagesData: Memory[];
goals: string;
goalsData: Goal[];
actions: string;
actionNames: string;
providers: string;
}
const handler = async (runtime, message, state) => {
const recentContext = state.recentMessages;
const currentGoals = state.goalsData;
};
Multi-Agent Orchestration
ElizaOS supports coordinating multiple specialized agents.
Agent Configuration
export const agents = [
{
character: "./characters/analyst.json",
plugins: ["@elizaos/plugin-knowledge"],
settings: { role: "research" }
},
{
character: "./characters/trader.json",
plugins: ["@elizaos/plugin-solana"],
settings: { role: "execution" }
},
{
character: "./characters/coordinator.json",
plugins: ["@elizaos/plugin-bootstrap"],
settings: { role: "orchestration" }
}
];
Inter-Agent Communication
await runtime.sendMessage({
targetAgentId: "trader-agent-id",
content: {
text: "Execute buy order for SOL",
action: "TRADE",
data: { token: "SOL", amount: 100 }
}
});
runtime.on("agent:message", (message) => {
if (message.sourceAgentId === "analyst-agent-id") {
}
});
REST API
ElizaOS exposes a REST API for external integrations.
Endpoints
| Endpoint | Method | Description |
|---|
/api/agents | GET | List all agents |
/api/agents/:id | GET | Get agent details |
/api/agents/:id/messages | POST | Send message to agent |
/api/agents/:id/messages | GET | Get conversation history |
/api/agents/:id/memory | GET | Retrieve agent memories |
/api/health | GET | Service health check |
Example Usage
curl http://localhost:3000/api/agents
curl -X POST http://localhost:3000/api/agents/my-agent/messages \
-H "Content-Type: application/json" \
-d '{"text": "What is the current ETH price?"}'
curl http://localhost:3000/api/agents/my-agent/messages?limit=10
WebSocket Connection
import { io } from "socket.io-client";
const socket = io("http://localhost:3000");
socket.on("connect", () => {
socket.emit("join", { agentId: "my-agent", roomId: "room-1" });
});
socket.on("message", (data) => {
console.log("Agent response:", data.text);
});
socket.emit("message", {
agentId: "my-agent",
roomId: "room-1",
text: "Hello agent!"
});
Environment Configuration
Required Variables
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_GENERATIVE_AI_API_KEY=...
DATABASE_URL=postgresql://user:pass@localhost:5432/eliza
DISCORD_BOT_TOKEN=...
TELEGRAM_BOT_TOKEN=...
TWITTER_API_KEY=...
TWITTER_API_SECRET=...
TWITTER_ACCESS_TOKEN=...
TWITTER_ACCESS_SECRET=...
SOLANA_PRIVATE_KEY=...
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
EVM_PRIVATE_KEY=0x...
EVM_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/...
Configuration Management
elizaos env list
elizaos env edit-local
elizaos env set OPENAI_API_KEY=sk-xxx
elizaos start --env production
Deployment
Local Production
elizaos build
elizaos start --production
Docker
FROM oven/bun:latest
WORKDIR /app
COPY . .
RUN bun install
RUN bun run build
EXPOSE 3000
CMD ["bun", "run", "start"]
docker build -t my-agent .
docker run -p 3000:3000 --env-file .env my-agent
AWS ECS
elizaos deploy --platform aws-ecs
elizaos deploy configure
TEE (Trusted Execution Environment)
elizaos tee deploy
elizaos tee status
Troubleshooting
Common Issues
Agent not responding:
LOG_LEVEL=debug elizaos start
elizaos env list | grep API_KEY
Plugin not loading:
elizaos plugins remove @elizaos/plugin-discord
elizaos plugins add @elizaos/plugin-discord
elizaos plugins list --check-versions
Memory/database issues:
elizaos db reset
elizaos db status
Platform connection errors:
elizaos test discord
elizaos env check DISCORD_BOT_TOKEN
ElizaOS Ecosystem
The ElizaOS organization maintains 56+ repositories for specialized use cases:
Specialized Agents
| Repository | Description |
|---|
eliza | Core autonomous agent framework (17k+ stars) |
otaku | Autonomous DeFi trading and research agent |
spartan | Quantitative trading agent |
SWEagent | Autonomous software engineering agent |
the-org | Agents for organizations |
Infrastructure & Tools
| Repository | Description |
|---|
knowledge | Ecosystem news, GitHub updates, discussion summaries for RAG |
mcp-gateway | MCP (Model Context Protocol) gateway |
x402.elizaos.ai | Dynamic x402 routing with intelligent content negotiation |
mobile | ElizaOS Cloud app with Privy React Native starter |
LiveVideoChat | Live video chat integration |
Templates & Starters
| Repository | Description |
|---|
eliza-plugin-starter | Plugin development template |
eliza-nextjs-starter | Eliza v2 Document Chat Demo on Next.js |
eliza-3d-hyperfy-starter | 3D agent with Hyperfy plugin |
project-starter | Standard project template |
project-tee-starter | TEE (Trusted Execution Environment) template |
Community & Documentation
| Repository | Description |
|---|
docs | Official documentation |
elizaos.github.io | Contributor leaderboard |
elizas-list | Community project directory |
workgroups | Ecosystem acceleration workgroups |
plugins-automation | Automation for 150+ plugins management |
Spartan: DeFi Trading Agent
Spartan is a production-ready DeFi trading agent built on ElizaOS, demonstrating advanced multi-chain trading capabilities with AI-driven decision-making.
Spartan Features
| Feature | Description |
|---|
| Multi-Chain Trading | Solana, Ethereum, Base with Jupiter and 0x integration |
| Technical Analysis | 14+ indicators (RSI, MACD, Bollinger Bands, Stochastic, ATR, ADX) |
| Autonomous Trading | AI-driven position management with risk controls |
| Multi-Wallet | User-specific custody with cross-wallet transfers |
| Market Intelligence | Real-time sentiment, whale tracking, trending tokens |
| Community Investing | Trust-scored recommendations with leaderboards |
Spartan Plugin Architecture
spartan/src/plugins/
├── account/ # User registration and notifications
├── analytics/ # Token analysis with 14+ technical indicators
├── autofunTrader/ # auto.fun protocol with 5-min buy/sell signals
├── autonomous-trader/ # Core trading utilities, holder verification
├── coin_marketing/ # Promotion and campaign tools
├── communityInvestor/ # Trust scoring, leaderboards, recommendations
├── degenIntel/ # Sentiment analysis, whale tracking, trending
├── kol/ # Key Opinion Leader framework
├── multiwallet/ # Jupiter swaps, wallet consolidation, transfers
└── trading/ # Multi-strategy engine (LLM, copy trading, manual)
Spartan Trading Strategies
const llmStrategy = {
type: "llm",
model: "anthropic",
riskLevel: "medium",
positionSize: "dynamic"
};
const copyStrategy = {
type: "copy",
targetWallets: ["whale-address-1", "whale-address-2"],
mirrorDelay: 30,
maxPositionRatio: 0.5
};
const manualStrategy = {
type: "manual",
confirmationRequired: true,
slippage: 0.01
};
Spartan Environment Configuration
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
SOLANA_PRIVATE_KEY=<base58-encoded-key>
EVM_PROVIDER_URL=https://eth-mainnet.g.alchemy.com/v2/...
BIRDEYE_API_KEY=...
COINMARKETCAP_API_KEY=...
JUPITER_API_KEY=...
ZEROEX_API_KEY=...
MYSQL_HOST=localhost
MYSQL_USER=spartan
MYSQL_PASSWORD=...
MYSQL_DATABASE=spartan
Spartan Quick Start
git clone https://github.com/elizaOS/spartan.git
cd spartan
npm install
cp .env.example .env
docker-compose up -d
elizaos start
DEBUG=elizaos:* npm run dev
Spartan Character Example
{
"name": "Spartan",
"bio": [
"DeFi trading warlord with no-BS attitude",
"Combines alpha with tactical precision",
"Result-oriented, direct communication style"
],
"lore": [
"Forged in the DeFi trenches of multiple market cycles",
"Known for calling out rug pulls before they happen"
],
"knowledge": [
"Jupiter DEX aggregation mechanics",
"On-chain whale activity patterns",
"Technical analysis with 14+ indicators"
],
"topics": ["trading", "DeFi", "analytics", "market intelligence"],
"style": {
"all": ["direct", "tactical", "analytical"],
"chat": ["concise", "actionable", "data-driven"],
"post": ["alpha-focused", "no-fluff"]
},
"plugins": [
"@elizaos/plugin-bootstrap",
"@elizaos/plugin-sql",
"@elizaos/plugin-solana"
]
}
Monorepo Structure
packages/
├── core/ # Central framework (AgentRuntime, types)
├── cli/ # Command-line interface
├── client/ # Client-side implementation
├── server/ # Server-side implementation
├── app/ # Application layer
├── api-client/ # API client interface
├── config/ # Configuration management
├── service-interfaces/ # Service definitions and contracts
├── test-utils/ # Testing utilities
├── elizaos/ # Main package export
│
├── plugin-bootstrap/ # Core communication plugin (required)
├── plugin-sql/ # Database integration
├── plugin-starter/ # Plugin template
├── plugin-quick-starter/ # Rapid development template
├── plugin-dummy-services/ # Mock services for testing
│
├── project-starter/ # Standard project template
└── project-tee-starter/ # TEE project template
Resources
Official Documentation
Community
Examples & Templates
Version History
-
1.2.0 (2026-01-11): Added Spartan DeFi trading agent documentation
- Complete Spartan plugin architecture (10 plugins)
- Trading strategies: LLM-based, copy trading, manual
- Technical analysis with 14+ indicators
- Multi-wallet management and Jupiter/0x DEX integration
- Spartan-specific environment configuration
- Character configuration example for trading agents
- Quick start guide with Docker deployment
-
1.1.0 (2026-01-11): Enhanced with GitHub ecosystem details
- Added Bootstrap plugin component details (14 actions, 18 providers, 2 evaluators, 3 services)
- Added ElizaOS ecosystem section (56+ repositories)
- Added monorepo structure documentation
- Added AgentRuntime and component interfaces
- Added specialized agents (otaku, spartan, SWEagent)
- Added infrastructure tools (MCP gateway, knowledge base, mobile app)
- Enhanced core concepts with Services component
-
1.0.0 (2026-01-11): Initial skill release
- Complete ElizaOS framework documentation
- CLI reference with all commands
- Character configuration guide
- Plugin architecture and examples
- Memory system documentation
- Multi-agent orchestration patterns
- REST API and WebSocket integration
- Deployment options (Docker, AWS ECS, TEE)