https://github.com/elizaOS/eliza
Autonomous agents for everyone
https://github.com/elizaOS/eliza
agent agentic ai autonomous chatbot crypto discord eliza elizaos framework plugins rag slack swarm telegram
Last synced: about 1 month ago
JSON representation
Autonomous agents for everyone
- Host: GitHub
- URL: https://github.com/elizaOS/eliza
- Owner: elizaOS
- License: mit
- Created: 2024-07-09T07:55:40.000Z (about 1 year ago)
- Default Branch: develop
- Last Pushed: 2025-08-20T15:55:06.000Z (about 2 months ago)
- Last Synced: 2025-08-20T16:11:32.074Z (about 2 months ago)
- Topics: agent, agentic, ai, autonomous, chatbot, crypto, discord, eliza, elizaos, framework, plugins, rag, slack, swarm, telegram
- Language: TypeScript
- Homepage: https://eliza.how/
- Size: 1.02 GB
- Stars: 16,621
- Watchers: 152
- Forks: 5,302
- Open Issues: 70
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hacking-lists - elizaOS/eliza - Autonomous agents for everyone (TypeScript)
- awesome-web3-ai - Eliza
- awesome-web3-ai - eliza
- awesome - elizaOS/eliza - Autonomous agents for everyone (TypeScript)
- awesome-agents - eliza
- StarryDivineSky - elizaOS/eliza
- awesome-ccamel - elizaOS/eliza - Autonomous agents for everyone (TypeScript)
- awesome-sui - Eliza - Autonomous agents for everyone. (AI / Smart Contract Toolkits)
README
# Eliza
A framework for multi-agent development and deployment
## ✨ Features
- 🛠️ Full-featured Discord, Telegram, and Farcaster connectors (and many more!)
- 🔗 Support for every model (Llama, Grok, OpenAI, Anthropic, Gemini, etc.)
- 🎨 Modern and professional UI with a redesigned dashboard for managing agents and groups.
- 💬 Robust real-time communication with enhanced channel and message handling.
- 👥 Multi-agent and group support with intuitive management.
- 📚 Easily ingest and interact with your documents.
- 💾 Retrievable memory and document store.
- 🚀 Highly extensible - create your own actions and clients.
- 📦 Just works!## 🎯 Use Cases
- 🤖 Chatbots
- 🕵️ Autonomous Agents
- 📈 Business Process Handling
- 🎮 Video Game NPCs
- 🧠 Trading## 🚀 Quick Start
### Prerequisites
- [Node.js](https://nodejs.org/) (v23 or higher recommended)
- [bun](https://bun.sh/docs/installation)> **Note for Windows Users:** [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual) is required.
### Use the CLI (Recommended)
The ElizaOS CLI provides the fastest and most reliable way to create, configure, and run agents. It handles all the complex setup automatically.
#### 1. Install the CLI
```bash
# Install the ElizaOS CLI globally
bun install -g @elizaos/cli# Verify installation
elizaos --version# Get help with available commands
elizaos --help
```#### 2. Create Your First Project
```bash
# Create a new project with interactive setup
elizaos create my-agent# Or create with specific options (skips prompts)
elizaos create my-agent --yes --type project
```**Recommended Options for Beginners:**
- **Database**: `pglite` (lightweight, no setup required)
- **Model Provider**: `openai` (most reliable and well-tested)
- **Project Type**: `project` (full ElizaOS application with runtime and agents)#### 3. Configure Your Agent
```bash
cd my-agent# Edit your local env file
elizaos env edit-local# Or manually edit the .env file with your preferred editor
nano .env
```**Essential Environment Variables:**
```bash
# Required: Your model API key
OPENAI_API_KEY=your_api_key_here# Optional: Logging level (info, debug, error)
LOG_LEVEL=info# Optional: Discord bot token (if using Discord)
DISCORD_APPLICATION_ID=your_discord_app_id
DISCORD_API_TOKEN=your_discord_bot_token
```#### 4. Start Your Agent
```bash
# Build and start your agent
elizaos start# Or start with debug logging for development
LOG_LEVEL=debug elizaos start
```After starting, your agent will be available at:
- **Web Interface**: http://localhost:3000
- **API Endpoint**: http://localhost:3000/api#### 5. Development Workflow
```bash
# Make changes to your agent code
# Then rebuild and restart
bun run build
elizaos start# Run tests to verify your changes
elizaos test
```#### Advanced CLI Commands
```bash
# Create specific components
elizaos create my-plugin --type plugin # Create a new plugin
elizaos create my-agent --type agent # Create a new agent character
elizaos create my-tee --type tee # Create a TEE project# Environment management
elizaos env list # Show all environment variables
elizaos env reset # Reset to default .env.example# Testing options
elizaos test --name "my-test" # Run specific tests
elizaos test e2e # Run end-to-end tests only
elizaos test component # Run component tests only# Agent management
elizaos agent list # List all available agents
elizaos agent start --name "Agent" # Start a specific agent by name
elizaos agent stop --name "Agent" # Stop a running agent
elizaos agent get --name "Agent" # Get agent details
elizaos agent set --name "Agent" --file config.json # Update agent configuration
```#### Debugging and Logging
ElizaOS uses comprehensive logging to help you understand what your agent is doing:
```bash
# Different log levels
LOG_LEVEL=error elizaos start # Only errors
LOG_LEVEL=info elizaos start # General information (default)
LOG_LEVEL=debug elizaos start # Detailed debugging info
LOG_LEVEL=verbose elizaos start # Everything (very detailed)# Advanced debugging (combine with LOG_LEVEL=debug)
ELIZA_DEBUG=true elizaos start # Enable ElizaOS debug output
NODE_ENV=development elizaos start # Development mode with extra logging
```**Pro Tips:**
- Use `elizaos --help` to see all available commands and global options
- Use `elizaos --help` for detailed help on any specific command
- Use `LOG_LEVEL=debug` during development to see detailed execution flow
- Check the web interface at http://localhost:3000 for real-time agent status
- Use `elizaos test` frequently to catch issues early
- Keep your `.env` file secure and never commit it to version control#### Available Commands Reference
**All CLI Commands:**
```bash
elizaos create # Create new projects, plugins, agents, or TEE projects
elizaos start # Start the agent server with character profiles
elizaos agent # Manage agents (list, start, stop, get, set)
elizaos test # Run tests (component, e2e, or all)
elizaos env # Manage environment variables and configuration
elizaos dev # Start in development mode with auto-rebuild
elizaos update # Update CLI and project dependencies
# To stop agents, use Ctrl+C in the terminal where elizaos start is running
elizaos publish # Publish plugins to registry
elizaos plugins # Manage and discover plugins
elizaos monorepo # Monorepo development utilities
elizaos tee # Trusted Execution Environment commands# Get help for any specific command
elizaos --help # e.g., elizaos create --help, elizaos agent --help
```### Manually Start Eliza (Only recommended if you know what you are doing)
#### Prerequisites
- **Node.js** (v18+ recommended)
- **bun** (for CLI and dependencies)
- **git** (for project/plugin tests)#### Checkout the latest release
```bash
# Clone the repository
git clone https://github.com/elizaos/eliza.git# This project iterates fast, so we recommend checking out the latest release
git checkout $(git describe --tags --abbrev=0)
# If the above doesn't checkout the latest release, this should work:
# git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
```#### Edit the .env file
Copy .env.example to .env and fill in the appropriate values.
```
cp .env.example .env
```Note: .env is optional. If you're planning to run multiple distinct agents, you can pass secrets through the character JSON
#### Start Eliza
Important! We now use Bun. If you are using npm, you will need to install Bun:
https://bun.sh/docs/installation```bash
bun install
bun run build
bun start
```### Interact via Browser
Once Eliza is running, access the modern web interface at http://localhost:3000. It has been professionally redesigned and features:
- A welcoming dashboard with a gradient hero section and clear calls-to-action for creating agents and groups.
- Visually enhanced cards for managing agents and groups, including status indicators and member counts.
- Real-time chat capabilities with your agents.
- Character configuration options.
- Plugin management.
- Comprehensive memory and conversation history.
- Responsive design for an optimal experience on various screen sizes.## Citation
We now have a [paper](https://arxiv.org/pdf/2501.06781) you can cite for the Eliza OS:
```bibtex
@article{walters2025eliza,
title={Eliza: A Web3 friendly AI Agent Operating System},
author={Walters, Shaw and Gao, Sam and Nerd, Shakker and Da, Feng and Williams, Warren and Meng, Ting-Chien and Han, Hunter and He, Frank and Zhang, Allen and Wu, Ming and others},
journal={arXiv preprint arXiv:2501.06781},
year={2025}
}
```## Contributors
## Star History
[](https://star-history.com/#elizaos/eliza&Date)
## Git Hooks
This project uses git hooks to ensure code quality:
- **pre-commit**: Automatically formats staged files using Prettier before committing
To run the pre-commit hook manually:
```bash
bun run pre-commit
```## 📂 Repository Structure
Eliza is organized as a monorepo using Bun, Lerna, and Turbo for efficient package management and build orchestration. Here's a detailed overview of the project structure:
- **`/` (Root)**:
- `.github/`: GitHub Actions workflows for CI/CD pipelines and issue templates
- `.husky/`: Git hooks configuration, including pre-commit formatting
- `.devcontainer/`: Development container configurations for consistent environments
- `packages/`: Core packages and modules (detailed below)
- `scripts/`: Build, development, and utility scripts
- `data/`: Application and user data storage
- `AGENTS.md`: Comprehensive agent documentation and specifications
- `CHANGELOG.md`: Detailed version history and changes
- `Dockerfile`, `docker-compose.yaml`: Container configurations for deployment
- `lerna.json`, `package.json`, `turbo.json`: Monorepo configuration and workspace definitions- **`/packages/`**: Core components of the Eliza framework:
- `core/`: The foundational package (@elizaos/core) implementing:
- PDF processing capabilities
- Logging and error handling infrastructure
- `app/`: Tauri-based cross-platform application (@elizaos/app)
- React-based UI implementation
- Tauri plugins for system integration
- Desktop and mobile builds support
- `autodoc/`: Documentation automation tool (@elizaos/autodoc)
- LangChain-powered documentation generation
- TypeScript parsing and analysis
- GitHub integration via Octokit
- `cli/`: Command-line interface for Eliza management
- `client/`: Client libraries for web interfaces
- `create-eliza/`: Project scaffolding tool
- `docs/`: Official documentation source files
- `plugin-bootstrap/`: **Essential communication core** (@elizaos/plugin-bootstrap)
- **Required for basic agent functionality** - handles all message processing
- Provides critical event handlers (MESSAGE_RECEIVED, VOICE_MESSAGE_RECEIVED, etc.)
- Implements fundamental agent actions (reply, follow/unfollow, mute/unmute)
- Contains core evaluators and providers for agent cognition
- Manages message processing pipeline and response generation
- **Mandatory unless building custom event handling system**
- `plugin-sql/`: Database integration (@elizaos/plugin-sql)
- PostgreSQL integration with PGLite support
- Drizzle ORM for type-safe queries
- Migration management tools
- Integration testing support
- `plugin-starter/`: Template for creating new plugins
- `project-starter/`, `project-tee-starter/`: Project templatesThis architecture enables modular development, clear separation of concerns, and scalable feature implementation across the Eliza ecosystem.