Development
Learn how to develop with elizaOS - from simple character modifications to core framework contributions
Prerequisites: Make sure you have completed the Quickstart guide and have Node.js (version 23.0 or higher) and Bun installed.
Development Tracks
elizaOS offers two distinct development paths depending on your goals and experience level:
Beginner Track
Perfect for creating and customizing your own AI agents using the elizaOS CLI
Advanced Track
For contributors and developers building custom elizaOS versions
Beginner Development Track
The beginner track focuses on using the elizaOS CLI to create and customize your agents without diving into the core framework code.
Getting Started with CLI Development
Create Your Agent
If you haven’t already, create a new agent using the elizaOS CLI:
Navigate to Your Agent Directory
Understand the Project Structure
Your agent directory contains:
character.json
- Your agent’s personality and configurationpackage.json
- Project dependencies and scripts.env
- Environment variables and API keysplugins/
- Directory for custom plugins
Modifying Your Character
The character.json
file defines your agent’s personality, knowledge, and behavior:
Experiment with different personality traits and knowledge entries to create unique agent behaviors.
Working with Plugins
Plugins extend your agent’s capabilities with additional features:
Installing Plugins
Use the elizaOS CLI to add existing plugins:
After installing plugins via CLI, you must add them to your character file (.json
or .ts
) to activate them:
Removing Plugins
To remove a plugin:
Remember to also remove it from your character file (.json
or .ts
).
Available Plugins
Available Plugins
Available Plugins
@elizaos/plugin-bootstrap
- Base plugin infrastructure@elizaos/plugin-sql
- SQL database integration@elizaos/plugin-forms
- Forms for structured data collection@elizaos/plugin-starter
- Template for creating new plugins
Testing Your Changes
After making modifications:
Visit http://localhost:3000
to interact with your customized agent.
Advanced Development Track
The advanced track is for developers who want to contribute to the elizaOS core framework or build custom versions.
Setting Up the Monorepo
Clone the Repository
Clone the official elizaOS monorepo:
Install Dependencies
Use Bun to install all dependencies:
Build the Project
Build all packages in the monorepo:
Monorepo Structure
The elizaOS monorepo is organized as follows:
Contributing to Core Framework
Development Workflow
Create a Feature Branch
Make Your Changes
Edit files in the relevant package directory
Run Tests
Build and Verify
Submit a Pull Request
Push your changes and create a PR on GitHub
Key Development Areas
Work on the fundamental elizaOS engine:
- Agent reasoning logic
- Memory management
- Plugin system architecture
- Performance optimizations
Work on the fundamental elizaOS engine:
- Agent reasoning logic
- Memory management
- Plugin system architecture
- Performance optimizations
Create new plugins to extend functionality:
- Integration with external services
- New communication channels
- Custom tools and capabilities
Enhance the developer experience:
- New CLI commands
- Better error handling
- Template management
Creating Custom elizaOS Versions
For specialized use cases, you might want to create a custom fork:
Custom Version Best Practices
Maintain Compatibility
Keep your custom version compatible with the core plugin system
Document Changes
Clearly document all modifications and custom features
Stay Updated
Regularly sync with upstream to get the latest improvements:
Local Development Tips
Environment Setup
Create a .env.local
file for development:
Using Development Mode
Run the framework in development mode with hot reload:
Debugging
Enable Debug Logging
Enable Debug Logging
Set LOG_LEVEL=debug
in your environment variables
Use VS Code Debugger
Use VS Code Debugger
The monorepo includes VS Code debug configurations in .vscode/launch.json
Performance Profiling
Performance Profiling
Use bun run profile
to generate performance reports
Best Practices
For Beginners
- Start with small character modifications
- Test changes frequently
- Back up your
character.json
before major changes - Join the community for plugin recommendations
For Advanced Users
- Follow the project’s coding standards
- Write comprehensive tests for new features
- Document your code thoroughly
- Participate in code reviews
Getting Help
Documentation
Comprehensive guides and API references
GitHub Issues
Report bugs and request features
Discord Community
Get help from the community
Next Steps
Choose Your Track
Decide whether to start with the beginner or advanced track based on your goals
Set Up Your Environment
Follow the setup instructions for your chosen track
Start Building
Begin creating your agent or contributing to the framework
Share Your Work
Share your creations with the elizaOS community!