Built-in Tools
Riverse includes a pluggable tool system. The LLM automatically decides when to invoke tools based on the conversation context.
Available Tools
| Tool | Description |
|---|---|
| Web Search | Search the web for current information (uses cloud LLM with search: true) |
| Vision | Image analysis via GPT-4 Vision / Ollama LLaVA |
| Voice | Speech-to-text via OpenAI Whisper-1 |
| File Read | Read local text files (.txt, .py, .yaml, .json, .md) |
| Shell Exec | Execute safe shell commands (whitelist-based, disabled by default) |
| Finance Tracking | Track and analyze financial data |
| Health Sync | Sync health data from Withings devices |
Additionally, Text-to-Speech (TTS) via Edge TTS is available in Telegram and Discord bots. TTS is not a registry tool — it is integrated directly into the bot response pipeline. Enable it in settings.yaml:
Configuration
Managing Tools from the Dashboard
Open the System page → Tools section to:
- Toggle (ON/OFF): Click the ON/OFF badge on any tool card — takes effect after restart
- Delete: Click ✕ to remove a tool from the
tools.yamlregistry
No Python code changes needed.
How Tools Work
- On startup,
ToolRegistryreads the tool list fromagent/tools/tools.yaml - Each module is imported in order;
is_available()is called on everyBaseToolsubclass found - Available tools are registered by their
manifest().name - When the user sends a message, the LLM sees all tool manifests and decides which (if any) to call
- The tool's
execute()result is injected into the LLM's context for generating the final response
Custom Tools
You can create your own tools by adding .py files to agent/tools/. See the Custom Tool Development guide.