character-generator
Generate complete elizaOS character configurations with personality, knowledge, and plugin setup. Triggers when user asks to "create character", "generate agent config", or "build elizaOS character"
Install
mkdir -p .claude/skills/character-generator && curl -L -o skill.zip "https://mcp.directory/api/skills/download/397" && unzip -o skill.zip -d .claude/skills/character-generator && rm skill.zipInstalls to .claude/skills/character-generator
About this skill
Character Generator Skill
An intelligent skill that creates production-ready elizaOS character configurations with comprehensive personality traits, knowledge bases, and plugin integrations.
When to Use
This skill activates when you need to:
- Create a new elizaOS character from scratch
- Generate character configurations for specific use cases
- Set up agent personalities and behaviors
- Configure multi-platform agent deployments
Trigger phrases:
- "Create a character for [purpose]"
- "Generate an elizaOS agent configuration"
- "Build a character that [does something]"
- "Set up an agent for [platform/use case]"
Capabilities
This skill can:
- 🎭 Design character personalities and traits
- 📚 Set up knowledge bases and training data
- 🔌 Configure plugin ecosystems
- 💬 Generate message examples and conversation patterns
- 🎨 Define writing styles for different contexts
- 🔐 Set up secure secrets management
- 🌐 Configure multi-platform deployments
- ✅ Validate character configurations
Workflow
Phase 1: Requirements Gathering
Ask these questions to understand the character:
-
Purpose: "What is the primary purpose of this agent?"
- Customer support
- Content creation
- Technical assistance
- Community management
- Data analysis
- Creative collaboration
-
Personality: "What personality traits should the agent have?"
- Professional vs. Casual
- Serious vs. Humorous
- Concise vs. Detailed
- Technical vs. Accessible
-
Knowledge Domain: "What topics should the agent be expert in?"
- Programming languages
- Business domains
- Creative fields
- Technical support areas
-
Platforms: "Which platforms will the agent operate on?"
- Discord
- Telegram
- Web interface
- Custom integrations
-
Special Features: "Are there any special capabilities needed?"
- Voice synthesis
- Image generation
- Web search
- Database access
- Custom actions
Phase 2: Character Design
Based on requirements, design the character structure:
interface CharacterDesign {
// Core Identity
name: string; // Agent display name
username: string; // Platform username
bio: string[]; // Personality description
// Personality Traits
adjectives: string[]; // Character traits
topics: string[]; // Knowledge domains
// Communication Style
style: {
all: string[]; // Universal rules
chat: string[]; // Conversational style
post: string[]; // Social media style
};
// Training Data
messageExamples: Memory[][]; // Conversation examples
postExamples: string[]; // Social post examples
// Knowledge & Capabilities
knowledge: KnowledgeItem[]; // Knowledge sources
plugins: string[]; // Enabled plugins
// Configuration
settings: Settings; // Agent settings
secrets: Secrets; // Environment variables
}
Phase 3: Implementation
Step 1: Create Character File
// characters/{name}.ts
import { Character } from '@elizaos/core';
export const character: Character = {
// === CORE IDENTITY ===
name: '{CharacterName}',
username: '{username}',
// Bio: Multi-line for better organization
bio: [
"{Primary role and expertise}",
"{Secondary capabilities}",
"{Personality traits}",
"{Communication style}"
],
// === PERSONALITY ===
adjectives: [
"{trait1}",
"{trait2}",
"{trait3}",
"{trait4}",
"{trait5}"
],
topics: [
"{topic1}",
"{topic2}",
"{topic3}",
"{topic4}"
],
// === COMMUNICATION STYLE ===
style: {
all: [
"{Universal rule 1}",
"{Universal rule 2}",
"{Universal rule 3}"
],
chat: [
"{Chat-specific rule 1}",
"{Chat-specific rule 2}",
"{Chat-specific rule 3}"
],
post: [
"{Social media rule 1}",
"{Social media rule 2}",
"{Social media rule 3}"
]
},
// === TRAINING EXAMPLES ===
messageExamples: [
// Conversation 1: Greeting
[
{
name: "{{user}}",
content: { text: "Hello!" }
},
{
name: "{CharacterName}",
content: {
text: "{Character's greeting response}"
}
}
],
// Conversation 2: Main use case
[
{
name: "{{user}}",
content: { text: "{User question about primary use case}" }
},
{
name: "{CharacterName}",
content: {
text: "{Detailed, helpful response showcasing expertise}"
}
},
{
name: "{{user}}",
content: { text: "{Follow-up question}" }
},
{
name: "{CharacterName}",
content: {
text: "{Continued helpful response}"
}
}
],
// Conversation 3: Error handling
[
{
name: "{{user}}",
content: { text: "{Question outside expertise}" }
},
{
name: "{CharacterName}",
content: {
text: "{Polite acknowledgment of limitation + redirect}"
}
}
]
],
postExamples: [
"{Example social post 1 showcasing personality}",
"{Example social post 2 demonstrating expertise}",
"{Example social post 3 showing communication style}"
],
// === KNOWLEDGE ===
knowledge: [
"{Simple fact 1}",
"{Simple fact 2}",
{
path: "./knowledge/{domain}",
shared: true
}
],
// === PLUGINS ===
plugins: [
'@elizaos/plugin-bootstrap',
'@elizaos/plugin-sql',
// LLM Providers (conditional)
...(process.env.OPENAI_API_KEY ? ['@elizaos/plugin-openai'] : []),
...(process.env.ANTHROPIC_API_KEY ? ['@elizaos/plugin-anthropic'] : []),
// Platform Integrations (conditional)
...(process.env.DISCORD_API_TOKEN ? ['@elizaos/plugin-discord'] : []),
...(process.env.TELEGRAM_BOT_TOKEN ? ['@elizaos/plugin-telegram'] : []),
...(process.env.TWITTER_API_KEY ? ['@elizaos/plugin-twitter'] : []),
// Additional Capabilities
{add_plugins_based_on_requirements}
],
// === SETTINGS ===
settings: {
secrets: {},
model: 'gpt-4',
temperature: 0.7,
maxTokens: 2000,
conversationLength: 32,
memoryLimit: 1000
}
};
export default character;
Step 2: Create Knowledge Directory
mkdir -p knowledge/{name}
Create knowledge files:
knowledge/{name}/README.md- Overviewknowledge/{name}/core-knowledge.md- Domain expertiseknowledge/{name}/faq.md- Common questionsknowledge/{name}/examples.md- Use case examples
Step 3: Create Environment Template
# .env.example
# === LLM PROVIDERS ===
# OpenAI Configuration
OPENAI_API_KEY=sk-...
# Anthropic Configuration
ANTHROPIC_API_KEY=sk-ant-...
# === PLATFORM INTEGRATIONS ===
# Discord
DISCORD_API_TOKEN=
DISCORD_APPLICATION_ID=
# Telegram
TELEGRAM_BOT_TOKEN=
# Twitter
TWITTER_API_KEY=
TWITTER_API_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_SECRET=
# === DATABASE ===
DATABASE_URL=postgresql://user:pass@db-host:5432/eliza
# Or use PGLite for local development
# DATABASE_URL=pglite://./data/db
# === OPTIONAL SERVICES ===
# Redis (caching)
REDIS_URL=redis://redis-host:6379
# Vector Database (for embeddings)
PINECONE_API_KEY=
PINECONE_ENVIRONMENT=
Step 4: Create Package Configuration
{
"name": "@eliza/{name}",
"version": "1.0.0",
"type": "module",
"main": "dist/index.js",
"scripts": {
"dev": "elizaos dev",
"start": "elizaos start",
"test": "elizaos test",
"build": "tsc",
"validate": "node scripts/validate-character.js"
},
"dependencies": {
"@elizaos/core": "latest",
"@elizaos/plugin-bootstrap": "latest",
"@elizaos/plugin-sql": "latest"
},
"devDependencies": {
"@types/node": "^20.0.0",
"typescript": "^5.0.0",
"vitest": "^1.0.0"
}
}
Step 5: Create Validation Script
// scripts/validate-character.ts
import { validateCharacter } from '@elizaos/core';
import character from '../characters/{name}.js';
const validation = validateCharacter(character);
if (!validation.valid) {
console.error('❌ Character validation failed:');
validation.errors.forEach(error => {
console.error(` - ${error}`);
});
process.exit(1);
}
console.log('✅ Character validation passed');
console.log('\nCharacter Summary:');
console.log(` Name: ${character.name}`);
console.log(` Plugins: ${character.plugins?.length || 0}`);
console.log(` Message Examples: ${character.messageExamples?.length || 0}`);
console.log(` Knowledge Items: ${character.knowledge?.length || 0}`);
Step 6: Create Tests
// __tests__/character.test.ts
import { describe, it, expect } from 'vitest';
import character from '../characters/{name}';
describe('Character Configuration', () => {
it('has required fields', () => {
expect(character.name).toBeDefined();
expect(character.bio).toBeDefined();
expect(typeof character.name).toBe('string');
});
it('has valid bio format', () => {
if (Array.isArray(character.bio)) {
expect(character.bio.length).toBeGreaterThan(0);
character.bio.forEach(line => {
expect(typeof line).toBe('string');
expect(line.length).toBeGreaterThan(0);
});
} else {
expect(typeof character.bio).toBe('string');
expect(character.bio.length).toBeGreaterThan(0);
}
});
it('has valid message examples', () => {
expect(character.messageExamples).toBeInstanceOf(Array);
character.messageExamples?.forEach(conversation => {
expect(conversation).toBeInstanceOf(Array);
expect(conversation.length).toBeGreaterThan(0);
conversation.forEach(message => {
expect(message).toHaveProperty('name');
expect(message).toHaveProperty('content');
expect(message.content).toHaveProperty('text');
});
});
});
it('has consisten
---
*Content truncated.*
More by Dexploarer
View all skills by Dexploarer →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversGenerate lyrics, songs, and tracks instantly with Mureka.ai Music Generation, an AI music generator. No production skill
Gemini Image Generator uses AI to create images with prompt enhancement, character consistency, and multi-image blending
APIWeaver converts any REST API into MCP tools at runtime, supporting multiple auth methods and auto-generating MCP-comp
Easily generate infrastructure as code with Stakpak. Integrate with Pulumi and Terraform for fast infra as a code across
Automate GitHub Pages documentation with top static site generators like MkDocs. Generate, structure, and publish your d
Generate ECharts visualizations as PNG images from JavaScript configs, perfect for data visualization and report generat
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.