Prerequisites
Required:- Python 3.11+
uvpackage manager — installation guide- Node.js 18+ (for the Web UI)
- Git
- Docker daemon — for the Docker sandbox provider
- E2B API key — e2b.dev
- Daytona API key — daytona.io or self-hosted instance
- AgentBay API key and region access
Installation
Configuration
User config directory
Mycel stores configuration in~/.leon/:
Quick setup
Create~/.leon/config.env manually:
Starting services
Sandbox provider setup
See Sandbox for full provider configuration. Quick reference:Docker
Create~/.leon/sandboxes/docker.json:
E2B
Daytona (SaaS)
Daytona (self-hosted)
- Runner container image must have bash at
/usr/bin/bash - Workspace image must have bash at
/usr/bin/bash - Runner must be on both the compose network and the default Docker bridge network
/etc/hosts on the runner:
AgentBay
Verification
Open the Web UI athttp://localhost:5173, register an account, and confirm the agent responds.
Production notes
Database
Mycel uses SQLite by default. For production:Security
- Store API keys in
~/.leon/config.env, never in code or version control - Use
${VAR}substitution in JSON config files instead of hardcoding keys - Restrict file permissions:
chmod 600 ~/.leon/config.env - The
block_dangerous_commandssetting (default:true) preventsrm -rfand similar shell commands
Proxy environments
If your environment uses an HTTP proxy:Troubleshooting
"Could not import module" on backend startup
"Could not import module" on backend startup
- Confirm you’re in the correct directory
- Confirm the virtual environment is active:
source .venv/bin/activate - Try using the full path:
.venv/bin/python -m backend.web.main
"SOCKS proxy error" from LLM client
"SOCKS proxy error" from LLM client
Your shell has
all_proxy=socks5://... set. Unset before starting:Docker provider hangs
Docker provider hangs
Proxy environment variables inherited by the Docker CLI. Mycel strips these automatically, but if issues persist, check the
docker_host config field in ~/.leon/sandboxes/docker.json.Daytona PTY bootstrap fails
Daytona PTY bootstrap fails
Check each of these in order:
- Workspace image has bash at
/usr/bin/bash— test withdocker run <image> /usr/bin/bash -c "echo ok" - Runner has bash at
/usr/bin/bash - Runner is on the Docker bridge network (see Docker Compose config above)
- Daytona Proxy (port 4000) is accessible from the runner — test with
curl http://proxy.localhost:4000
fork/exec /usr/bin/bash: no such file or directory→ workspace image missing bashFailed to create sandbox within 60s→ network isolation, check runner networks- File operations fail silently → Daytona Proxy unreachable