Getting Started
Get MushroomAgent up and running on your machine in a few minutes. This guide walks through the shortest supported path from install to a working local agent, then shows when to use server-only and node mode.
For a first setup, install MushroomAgent as an agent. The agent is the decision side: it receives information, calls the model, decides what action should happen, and can run by itself on one machine. A node is only needed when another device should collect input or execute output for an agent running elsewhere.
What you need
- Linux or macOS. On Windows, use WSL2 for now.
- A normal interactive terminal
- A working LLM API key
Install an agent first
Start by getting an agent configured locally. Choose one of these two paths:
- Quick install: fastest way for most users.
- Developer mode: install from source for local development.
Once either path is complete, start the agent with mushroom-agent start for a full local runtime, or mushroom-agent serve --ui when you only want the service and browser UI.
Quick install
Run the installer
curl -fsSL https://docs.kiwilightyear.com/install.sh | bashThe installer checks your system, installs missing dependencies where possible, downloads MushroomAgent, links the
mushroom-agentcommand, installs Python dependencies, and runs the initialization wizard. It prepares the environment; it does not keep an agent service running after installation.Follow the prompts
Choose the default
agentmode for a local setup. For text chat, choose Pure text mode and enter the provider, model, and API key when the wizard asks for them.Start the agent
mushroom-agent startOpen
http://127.0.0.1:7860/webin your browser.
For non-interactive dependency selection, pass an extras profile:
curl -fsSL https://docs.kiwilightyear.com/install.sh | bash -s -- --extras minimal
curl -fsSL https://docs.kiwilightyear.com/install.sh | bash -s -- --extras voice
Developer mode
If you want to develop from source code instead of using the one-line installer, use this flow:
Clone the source repository
git clone https://github.com/kiwi-data/mushroomAgent.gitcd mushroomAgentInstall dependencies for full local development
uv sync --extra fullsource .venv/bin/activatewhich mushroom-agentConfirm one of the returned paths is
.venv/bin/mushroom-agentbefore runningmushroom-agentcommands.Initialize local config
mushroom-agent init --run-mode textThe wizard writes
~/.mushroom_agent/config.yaml,~/.mushroom_agent/node.yaml, local prompt files, and a local secrets sidecar. Re-run with--forceonly when you intentionally want to overwrite generated files.Start local environment
mushroom-agent startOpen
http://127.0.0.1:7860/webin your browser.
Node mode
Node mode is for a separate device that should collect input and execute output for an agent running elsewhere. It is not required for normal local chat.
You can set up node mode after completing either agent installation path above and creating an access key for the device.
A node collects information such as voice, video, text, and local device events, then forwards it to the agent. The agent decides what to do and sends actions back to the node. Those actions may be voice output, UI actions, robot movement, or other device-specific behavior.
On the agent host, create an access key and start the service:
mushroom-agent accesskey create --name "Kitchen Pi" --node-id pi-kitchen
mushroom-agent serve --ui
Then run the dedicated node installer on the device:
curl -fsSL https://docs.kiwilightyear.com/install_node.sh | bash -s -- \
--server-url ws://server-host:7860 \
--access-key <accesskey> \
--node-name "Kitchen Pi"
Then start the node with:
mushroom-agent node attach
Voice mode
Voice-related configuration can be generated directly by the installer wizard. Choose voice mode when prompted, or initialize explicitly from a source checkout:
mushroom-agent init --run-mode voice
Then start as usual:
mushroom-agent start
Voice mode may require extra system packages and the voice or full dependency profile.
If start fails
If mushroom-agent start fails because local auth integration is not configured, disable Langfuse auth for local testing and retry:
export MUSHROOM_SKIP_LANGFUSE_AUTH=1
mushroom-agent start
If generated config files are stale and you want to recreate them, re-initialize local config:
mushroom-agent init --force
mushroom-agent start