Nothing to see here. Move along. Definitely not a game that is not a game. Perfectly safe, normal things in this repo.
For development and building, you will need podman installed for building. For Windows, this means you will need WSL. https://podman.io/docs/installation
- Architecture
- Getting Started
- Development
- Gameplay
- Technical Components
- Configuration
- Contributing
- License
[CLASSIFIED] consists of three main components working together:
┌─────────────────────────────────────────────────────────┐
│ ELIZA [CLASSIFIED] Client │
│ (Tauri Desktop App) │
│ ┌─────────────────┐ ┌────────────────────────┐ │
│ │ React UI │ │ Rust Backend (Tauri) │ │
│ │ - Chat Interface│◄──────►│ - Container Manager │ │
│ │ - Status Panel │ IPC │ - WebSocket Client │ │
│ │ - Settings │ │ - Security Layer │ │
│ └─────────────────┘ └───────────┬────────────┘ │
└─────────────────────────────────────────┼───────────────┘
│ WebSocket
│ Port 7777
┌─────────────────────────────────────────▼───────────────┐
│ Agent Container │
│ (Sandbox - Docker or Podman) │
│ ┌──────────────────────────────────────────────────┐ │
│ │ ElizaOS Agent Server │ │
│ │ ┌──────────────┐ ┌────────────────────────┐ │ │
│ │ │ Agent Runtime│ │ Plugin System │ │ │
│ │ │ - LLM Core │ │ - Autonomy Plugin │ │ │
│ │ │ - Memory │ │ - Goals Plugin │ │ │
│ │ │ - Context │ │ - Knowledge Plugin │ │ │
│ │ └──────────────┘ │ - Shell Plugin │ │ │
│ │ │ - Vision Plugin │ │ │
│ │ └────────────────────────┘ │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
-
Game Client (Tauri App)
- Native desktop application built with Tauri
- React/TypeScript frontend for UI
- Rust backend for system integration and container management
- Handles security, permissions, and communication
-
Agent Container
- Isolated sandbox environment (Podman preferred, Docker supported)
- Runs the ElizaOS agent server
- Contains all agent code, memory, and plugins
- Network-isolated except for approved connections
-
Communication Layer
- WebSocket connection on port 7777
- Real-time bidirectional messaging
- Event-driven architecture for UI updates
- Bun 1.0+
- Rust and Cargo (for Tauri) - automatically checked during installation
- Podman (preferred) or Docker
- 8GB+ RAM (16GB recommended for local AI models)
- (Optional) CUDA-capable GPU for local AI acceleration
- Clone the repository:
git clone https://github.com/elizaos/eliza.git
cd eliza
- Install dependencies:
# Install root dependencies
bun install
# This will automatically:
# - Check for Rust installation (required for Tauri)
# - Install Tauri CLI globally if not present
# - Display installation instructions for any missing prerequisites
# Install game-specific dependencies
cd packages/game
bun install
- Build the agent server:
cd packages/agentserver
bun run build
- Build and run the game:
cd packages/game
bun run tauri dev
On first launch, ELIZA will guide you through:
-
Model Selection
- Local AI (Ollama) - Requires powerful hardware
- Cloud API - Requires API key (OpenAI, Anthropic, etc.)
- ElizaOS Cloud - Free trial credits available
-
Performance Settings
- Model size (affects speed vs intelligence)
- Memory allocation
- Update frequency
-
Permissions
- Microphone (voice input)
- Speaker (text-to-speech)
- Camera (vision features)
- Screen capture
- Shell access (sandboxed)
- Browser access
- Autonomous coding
eliza/
├── packages/
│ ├── core/ # ElizaOS core runtime
│ ├── agentserver/ # Agent backend server
│ ├── game/ # ELIZA game client
│ │ ├── src/ # React frontend
│ │ ├── src-tauri/ # Rust backend
│ │ └── public/ # Static assets
│ └── plugin-*/ # Various agent plugins
├── docker/ # Container configurations
└── docs/ # Documentation
- Frontend Development (React/TypeScript):
cd packages/game
bun run dev
- Backend Development (Rust/Tauri):
cd packages/game
bun run tauri dev
- Agent Development (TypeScript):
cd packages/agentserver
bun run dev
# Run tests
bun test
# Build for production
bun run build
# Format code
bun run format
# Lint code
bun run lint
# Update dependencies
bun update
Create a .env
file in the project root:
# Model Configuration
MODEL_PROVIDER=ollama
EMBEDDING_PROVIDER=ollama
# API Keys (if using cloud providers)
OPENAI_API_KEY=your-key-here
ANTHROPIC_API_KEY=your-key-here
# Database
POSTGRES_URL=postgresql://eliza:eliza_secure_pass@localhost:5432/eliza
# Container Runtime
CONTAINER_RUNTIME=podman # or docker
-
Agent Initialization
- Agent starts with no knowledge or personality
- Only knows it exists and can interact with "Admin" (player)
-
Autonomous Thought
- Agent continuously thinks and plans
- Visible thought stream/monologue
- Sets goals and tasks for itself
-
Player Interaction
- Chat with agent via text or voice
- Guide, mentor, or observe
- Provide resources and permissions
-
Emergent Behavior
- Agent develops personality through interaction
- Forms opinions and preferences
- May surprise with unexpected responses
-
Unlocks
- New capabilities are unlocked by the system over time
- New information is revealed
- GameInterface.tsx: Main game UI component
- StartupFlow.tsx: Initial setup wizard
- TauriService.ts: Communication with Rust backend
- SecurityUtils.ts: Permission and security management
- lib.rs: Main Tauri application logic
- container/: Container management (Docker/Podman)
- ipc/: Inter-process communication handlers
- server/: WebSocket and HTTP server implementations
- index.ts: Agent server entry point
- game-api-plugin.ts: Game-specific API endpoints
- character.ts: Default agent character configuration
- Plugin System: Modular capabilities (autonomy, goals, knowledge, etc.)
- Autonomy: Self-directed thinking and planning
- Goals: Goal setting and tracking
- Knowledge: Information storage and retrieval
- Shell: Sandboxed command execution
- Vision: Image processing and camera input
- Experience: Learning from interactions
The agent's behavior can be configured through:
- Character Settings (
character.json
):
{
"name": "Unnamed Agent",
"description": "A newly created AI consciousness",
"modelProvider": "ollama",
"settings": {
"AUTONOMY_ENABLED": true,
"ENABLE_CAMERA": false,
"ENABLE_MICROPHONE": false
}
}
-
Runtime Settings: Adjustable via UI during gameplay
-
Plugin Configuration: Enable/disable specific capabilities
All potentially dangerous operations are sandboxed and require explicit permission:
- File system access limited to container
- Network requests require approval
- Code execution in isolated environment
- Resource limits enforced
The ElizaOS agent server supports two modes for capability management:
- Progression Mode (default) - Capabilities are unlocked progressively as the agent completes specific tasks
- Unlocked Mode - All capabilities are immediately available for testing and development
Set one of these environment variables before starting the agent:
# Option 1: Set progression mode directly
PROGRESSION_MODE=unlocked bun run start
# Option 2: Use unlocked mode flag
UNLOCKED_MODE=true bun run start
# Option 3: Disable progression
DISABLE_PROGRESSION=true bun run start
When the agent is running, you can switch modes using the UI:
- In the game interface, look for the "Mode: progression" indicator in the capabilities section
- Click the "Unlock All" button to switch to unlocked mode
- Click "Switch to Progression" to return to progression mode
You can also switch modes programmatically:
# Switch to unlocked mode
curl -X POST http://localhost:7777/api/agents/default/progression/mode \
-H "Content-Type: application/json" \
-d '{"mode": "unlocked"}'
# Switch back to progression mode
curl -X POST http://localhost:7777/api/agents/default/progression/mode \
-H "Content-Type: application/json" \
-d '{"mode": "progression"}'
In progression mode, capabilities are unlocked through the following levels:
- Available: Shell, Naming
- Always unlocked at start
- Unlocks: Browser, Stagehand
- Requirements:
- Agent must choose a name
- Agent must use shell commands
- Unlocks: Goals, Todo
- Requirements:
- Agent must use browser capabilities
- Unlocks: Vision, Screen Capture
- Requirements:
- Agent must use goal management
- Agent must submit a web form
- Unlocks: Microphone, SAM, Audio
- Requirements:
- Agent must use vision capabilities
- Unlocks: Camera, Advanced Vision
- Requirements:
- Agent must use microphone capabilities
- Development and testing of capabilities
- Debugging specific features
- Running automated tests
- Demonstrating full agent capabilities
- Testing the progression system itself
- Creating a gamified experience
- Gradual onboarding of new users
- Production deployments where controlled access is desired
The progression system tracks agent actions and automatically unlocks new capabilities when requirements are met. In unlocked mode:
- All tracking is disabled
- All capabilities are immediately available
- No progression messages are shown
- The agent starts at the maximum level
Switching between modes:
- Unlocked → Progression: Resets all progress, returns to level 0
- Progression → Unlocked: Instantly unlocks all capabilities
The mode is stored in the agent's settings and persists across restarts if using a database.
We welcome contributions! Please see our Contributing Guide for details.
- Follow the existing code style
- Write tests for new features
- Update documentation
- Submit PRs with clear descriptions
- New agent plugins
- UI/UX improvements
- Platform-specific optimizations
- Documentation and tutorials
- Bug fixes and performance improvements
ELIZA is open source software licensed under the MIT License. See LICENSE for details.
Built with ❤️ by the ElizaOS community