Lightweight and efficient personal AI assistant in Go.
中文 | 日本語 | Português | Tiếng Việt | Français | Español | English
Lele is an independent project focused on delivering a practical AI assistant with a small footprint, fast startup, and a straightforward deployment model.
Today the project is more than a minimal CLI bot. It includes a configurable agent runtime, multi-channel gateway, web UI, native client API, scheduled tasks, subagents, and a workspace-centered automation model.
- Lightweight Go implementation with a small operational footprint
- Efficient enough to run comfortably on modest Linux machines and boards
- One project for CLI, chat channels, web UI, and local client integrations
- Configurable provider routing with support for direct and OpenAI-compatible backends
- Workspace-first design with skills, memory, scheduled jobs, and sandbox controls
- CLI chat with
lele agent - Tool-using agent loop with configurable iteration limits
- File attachments in native/web flows
- Session persistence and optional ephemeral sessions
- Named agents, bindings, and model fallbacks
- Terminal usage through the CLI
- Gateway mode for chat channels
- Built-in web UI
- Native client channel with REST + WebSocket API and PIN pairing
- Scheduled jobs with
lele cron - Heartbeat-based periodic tasks from
HEARTBEAT.md - Async subagents for delegated work
- Skills system for reusable workflows
- Workspace restriction support
- Dangerous command deny patterns for exec tools
- Approval flow for sensitive actions
- Logs, status commands, and configuration management
Lele is an actively evolving standalone project.
The current codebase already supports:
- production-style gateway flows
- a web/native client path
- configurable multi-provider routing
- multiple messaging channels
- skills, subagents, and scheduled automation
The main documentation gap was that the old README still described an earlier fork identity and did not match the current feature set. This README reflects the project as it exists now.
curl -fsSL https://raw.githubusercontent.com/xilistudios/lele/main/install.sh | shOptions:
# Install a specific version
curl -fsSL https://raw.githubusercontent.com/xilistudios/lele/main/install.sh | sh -s -- --version v0.1.0
# Custom install prefix (default: ~/.local)
curl -fsSL https://raw.githubusercontent.com/xilistudios/lele/main/install.sh | sh -s -- --prefix /usr/localThe script detects your OS and architecture, downloads the correct binary, verifies its SHA256 checksum, and installs it.
git clone https://github.com/xilistudios/lele.git
cd lele
make deps
make build
make installThe binary is written to build/lele and installed to ~/.local/bin/lele.
lele onboardonboard creates the base config, workspace templates, and can optionally enable the web UI and generate a pairing PIN for the native/web client flow.
lele agent -m "What can you do?"Lele includes a terminal-based user interface for interactive agent sessions directly in your terminal.
# Start TUI with new session
lele tui
# Start TUI with existing session
lele tui -s <session-id>- Interactive chat with streaming responses
- Tool call visualization
- Markdown rendering in terminal
- Multi-language support (Spanish, English, Portuguese)
- Session management
Set your preferred language:
# Via environment variable
export LELE_LANG=en # or es, pt
# Or at runtime with command
/lang enLele now includes a local web UI plus a native client channel.
Typical flow:
- Run
lele onboard - Enable the Web UI when prompted
- Generate a pairing PIN
- Start the services with
lele gateway - Open the web app in your browser and pair with the PIN
The native channel exposes REST and WebSocket endpoints for desktop clients and local integrations.
See docs/client-api.md for the full API.
Main config file:
~/.lele/config.json
Example config template:
config/config.example.json
Core areas you can configure:
agents.defaults: workspace, provider, model, token limits, tool limitssession: ephemeral session behavior and identity linkschannels: gateway and messaging integrationsproviders: direct providers and named OpenAI-compatible backendstools: web search, cron, exec safety settingsheartbeat: periodic task executiongateway,logs,devices
{
"agents": {
"defaults": {
"workspace": "~/.lele/workspace",
"restrict_to_workspace": true,
"model": "glm-4.7",
"max_tokens": 8192,
"max_tool_iterations": 20
}
},
"providers": {
"openrouter": {
"type": "openrouter",
"api_key": "YOUR_API_KEY"
}
}
}Lele supports both built-in providers and named provider definitions.
Built-in provider families currently represented in config/runtime include:
anthropicopenaiopenroutergroqzhipugeminivllmnvidiaollamamoonshotdeepseekgithub_copilot
The project also supports named OpenAI-compatible provider entries with per-model settings such as:
modelcontext_windowmax_tokenstemperaturevisionreasoning
The gateway currently includes configuration for:
telegramdiscordwhatsappfeishuslacklineonebotqqdingtalkmaixcamnativeweb
Some channels are simple token-based integrations, while others require webhook or bridge setup.
Default workspace:
~/.lele/workspace/
Typical contents:
~/.lele/workspace/
├── sessions/
├── memory/
├── state/
├── cron/
├── skills/
├── AGENT.md
├── HEARTBEAT.md
├── IDENTITY.md
├── SOUL.md
└── USER.md
This workspace-centered layout is part of what keeps Lele practical and efficient: state, prompts, skills, and automation live in a predictable place.
Use lele cron to create one-shot or recurring jobs.
Examples:
lele cron list
lele cron add --name reminder --message "Check backups" --every "2h"Lele can periodically read HEARTBEAT.md from the workspace and execute tasks automatically.
Built-in and custom skills can be managed with:
lele skills list
lele skills search
lele skills install <skill>Lele supports delegated async work through subagents. This is useful for long-running or parallelizable tasks.
See docs/SKILL_SUBAGENTS.md for details.
Lele can restrict agent file and command access to the configured workspace.
Key controls include:
restrict_to_workspace- exec deny patterns
- approval flow for sensitive actions
- token-based auth for native clients
- upload limits and TTL for native file uploads
See docs/tools_configuration.md and docs/client-api.md for operational details.
| Command | Description |
|---|---|
lele onboard |
Initialize config and workspace |
lele agent |
Start interactive agent session |
lele agent -m "..." |
Run a one-shot prompt |
lele gateway |
Start messaging gateway |
lele auth login |
Authenticate supported providers |
lele status |
Show runtime status |
lele cron list |
List scheduled jobs |
lele cron add ... |
Add a scheduled job |
lele skills list |
List installed skills |
lele client pin |
Generate a pairing PIN |
lele client list |
List paired native clients |
lele tui |
Start terminal user interface |
lele tui -s <session> |
Start TUI with existing session |
lele version |
Show version information |
docs/agents-models-providers.mddocs/architecture.mddocs/channel-setup.mddocs/cli-reference.mddocs/config-reference.mddocs/client-api.mddocs/deployment.mddocs/examples.mddocs/installation-and-onboarding.mddocs/logging-and-observability.mddocs/model-routing.mddocs/security-and-sandbox.mddocs/session-and-workspace.mddocs/skills-authoring.mddocs/tools_configuration.mddocs/troubleshooting.mddocs/web-ui.mddocs/SKILL_SUBAGENTS.mddocs/SYSTEM_SPAWN_IMPLEMENTATION.md
git clone https://github.com/xilistudios/lele.git
cd lele
# Install Go dependencies
make deps
# Install web dependencies
cd web && bun install && cd ..
# Build for current platform
make build
# Or build for all platforms
make build-allmake build # Build for current OS/arch
make build-all # Cross-compile for all platforms
make web-build # Build the web UI
make test # Run tests
make fmt # Format Go code
make vet # Static analysis
make install # Install to ~/.local/bin
make clean # Remove build artifactsMIT