This guide assumes you have an elizaOS project set up. If you don’t, follow the quickstart guide
Step 1: Customize the personality
Opensrc/character.ts in your editor. You’ll see the default character template. Let’s transform this into our Shakespeare agent. For design concepts, see Personality and Behavior. For technical reference, see Character Interface.
Let’s start by updating the basic identity. Replace the name.
src/character.ts
Update the system prompt
The system prompt defines the core behavior. Let’s make it Shakespearean.src/character.ts
Define the bio
The bio array shapes how your agent introduces itself and understands its role. Each line adds depth to the personality.src/character.ts
Configure topics
Update the topics your agent is knowledgeable about.src/character.ts
Update message examples
Message examples teach your agent how to respond. These are crucial for maintaining character. Update the content to match Shakespeare’s personality.src/character.ts
Configure writing style
The style object determines how your agent communicates. For Shakespeare, we want eloquent, poetic responses.src/character.ts
Update settings
Let’s give Shakespeare a proper avatar.src/character.ts
Terminal
elizaos dev is like elizaos start but with enhanced logging and hot reload, perfect for debugging and testing changes in real-time.http://localhost:3000 in your browser and start chatting with Shakespeare. You should now get eloquent, Shakespearean responses instead of the default Eliza personality.
To use a different port, run
elizaos dev --port 8080 (or any port number).
You can also modify agent settings using the rightmost panel in the GUI, but these changes are runtime-only and won’t persist after restarting the server.
Additional character parameters
Your agent has exciting additional customization options we haven’t covered yet, including properties like:knowledge: Add facts, files, or directories of information to your agenttemplates: Create custom prompt templatesusername: Set social media usernames
Step 2: Configure Discord plugin
Now that we’ve customized Shakespeare’s personality, let’s connect him to Discord usingplugin-discord so everyone can chat with the Bard in your Discord server.
Set up environment variables
Copy/paste the Discord-related variables from.env.example to your .env file:
.env
Create Discord application
Need Discord credentials? Follow these steps:- Go to https://discord.com/developers/applications
- Go to the Applications tab
- Click “New Application” and set name = “Shakespeare”
- Set the app icon to your Shakespeare avatar, and set a description if you want one
- Copy/paste the Application ID into your
DISCORD_APPLICATION_ID=env var - Click the “Bot” tab
- Click “Reset Token” and copy/paste the bot token into your
DISCORD_API_TOKEN=env var - Scroll to the “Privileged Gateway Intents” section and toggle on all 3 toggles (Presence Intent, Server Members Intent, and Message Content Intent). Save your changes!
- Click the “OAuth2” tab
- Scroll down to the “OAuth2 URL Generator” section, and in the “Scopes” subsection, check the “bot” box
- Go down to the generated URL section, copy/paste that into your browser, and select the Discord server where you want to add Shakespeare
Start your agent
Restart your agent to load all the changes.Terminal

See Also
Here are some logical next-steps to continue your agent dev journey:Add Multiple Agents
Run multiple specialized agents that work together in coordinated workflows
Test a Project
Learn how to write comprehensive tests for your project and agents
Deploy a Project
Ready to go live? Deploy your elizaOS agent to production environments
Create a Plugin
Build custom plugins to extend your agent’s capabilities
CLI Reference
Master all elizaOS CLI commands for efficient agent development
Plugin Registry
Discover plugins for Twitter, image generation, voice synthesis, and more

