Norns Agent Capabilities
Last Updated: 2026-01-04 Maintainer: Claude Code / Nathan Walker
Norns is the AI-powered Slack assistant for RavenmaskOS. This document maintains the complete list of agent capabilities and available tools.
Overview
Norns operates as a LangGraph-based agent with access to 59 tools across 14 domains. It receives messages via Slack and can perform actions across the entire RavenmaskOS infrastructure.
High-Level Capabilities
| # | Capability | Description |
|---|---|---|
| 1 | Task Query | Query and search tasks by filters (today, overdue, priority, domain, project) |
| 2 | Task Creation | Create new tasks with domain classification, priority, and dates |
| 3 | Task Updates | Update task status, priority, or schedule |
| 4 | Task Completion | Mark tasks as complete |
| 5 | Project Status | Query project status and health |
| 6 | Daily Briefings | Provide daily summaries and briefings |
| 7 | Calendar Read | Read calendar events (today or upcoming days) |
| 8 | Calendar Create | Create calendar events on the shared family calendar |
| 9 | Place Search | Search for places nearby (restaurants, stores, services) |
| 10 | Navigation | Get driving directions and travel times |
| 11 | Server Monitoring | Check server/container status and query logs |
| 12 | Backup Management | Check backup status, list snapshots, run backups, verify health |
| 13 | GitLab Integration | Query projects, issues, merge requests, and pipelines |
| 14 | Grocy Integration | Manage shopping lists and inventory |
| 15 | n8n Integration | Control workflow automation |
| 16 | Linear Integration | Manage issues and track sprints |
| 17 | Langfuse Integration | Monitor LLM performance and observability |
| 18 | Phone Calls | Make outbound calls (scripted or interactive) |
Tool Inventory by Domain
Task Management (6 tools)
| Tool | Description |
|---|---|
query_tasks | Search tasks by various filters |
create_task | Create a new task with domain, priority, dates |
update_task | Modify existing task properties |
complete_task | Mark a task as done |
query_projects | Get project status and metrics |
get_daily_summary | Generate daily briefing with tasks and calendar |
Calendar (2 tools)
| Tool | Description |
|---|---|
calendar_read | Read upcoming calendar events |
calendar_create | Create new calendar events |
Home Automation (2 tools)
| Tool | Description |
|---|---|
home_status | Get current home status (lights, temperature, presence) |
home_command | Execute Home Assistant commands |
Navigation (3 tools)
| Tool | Description |
|---|---|
get_directions | Get turn-by-turn directions to destination |
get_travel_time | Calculate travel time between locations |
search_places | Search for nearby places (restaurants, stores, etc.) |
Observability (4 tools)
| Tool | Description |
|---|---|
container_status | Check Docker container health |
query_logs | Search container and system logs |
check_metrics | Query Prometheus metrics |
grafana_dashboard | Get Grafana dashboard links |
Knowledge (3 tools)
| Tool | Description |
|---|---|
web_search | Search the web for information |
get_weather | Get current weather and forecast |
search_news | Search recent news articles |
Backup Management (5 tools)
| Tool | Description |
|---|---|
backup_status | Check PostgreSQL dump and restic backup status |
list_snapshots | List available restic snapshots |
run_backup | Trigger a manual backup |
check_backup_health | Verify backup repository integrity |
backup_disk_usage | Check backup storage space |
GitLab (5 tools)
| Tool | Description |
|---|---|
gitlab_projects | List GitLab projects |
gitlab_issues | Query issues for a project |
gitlab_create_issue | Create a new GitLab issue |
gitlab_merge_requests | List merge requests |
gitlab_pipelines | Check CI/CD pipeline status |
Langfuse - LLM Observability (4 tools)
| Tool | Description |
|---|---|
langfuse_traces | View recent LLM invocation traces |
langfuse_metrics | Get token usage, latency, and cost metrics |
langfuse_errors | List recent LLM errors |
langfuse_scores | View evaluation scores |
Linear - Project Management (5 tools)
| Tool | Description |
|---|---|
linear_my_issues | Get issues assigned to current user |
linear_sprint_context | View current sprint/cycle status |
linear_create_issue | Create a new Linear issue |
linear_update_issue | Update issue status, priority, assignee |
linear_team_workload | View team workload distribution |
n8n - Workflow Automation (5 tools)
| Tool | Description |
|---|---|
n8n_workflows | List all workflows |
n8n_workflow_status | Get detailed workflow info |
n8n_activate_workflow | Activate or deactivate a workflow |
n8n_executions | View recent workflow executions |
n8n_trigger_webhook | Trigger a webhook workflow |
Grocy - Grocery & Inventory (5 tools)
| Tool | Description |
|---|---|
grocy_shopping_list | View current shopping list |
grocy_add_to_shopping_list | Add item to shopping list |
grocy_stock_overview | View inventory status |
grocy_products | List products in system |
grocy_consume_product | Mark product as consumed |
Phone Calls (2 tools)
| Tool | Description |
|---|---|
make_phone_call | Initiate outbound phone call |
check_call_status | Check status of ongoing call |
Legacy Groceries (2 tools)
| Tool | Description |
|---|---|
add_shopping_item | Legacy: Add to PostgreSQL shopping list |
query_inventory | Legacy: Query PostgreSQL inventory |
Environment Configuration
Norns requires the following environment variables for tool access:
# Core
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
# Home Assistant
HOMEASSISTANT_TOKEN=...
HOMEASSISTANT_URL=http://homeassistant:8123
# GitLab
GITLAB_URL=http://gitlab
GITLAB_TOKEN=glpat-...
# Grocy
GROCY_URL=http://grocy:80
GROCY_API_KEY=...
# n8n
N8N_URL=http://n8n:5678
N8N_API_KEY=...
# Linear
LINEAR_API_KEY=lin_api_...
# Langfuse
LANGFUSE_URL=http://langfuse-web:3000
LANGFUSE_PUBLIC_KEY=pk-lf-...
LANGFUSE_SECRET_KEY=sk-lf-...
# Backup paths (mounted volumes)
BACKUP_ROOT=/backups
T9_MOUNT=/Volumes/T9
Adding New Tools
To add a new tool to Norns:
-
Define the tool in
/Users/ravenhelm/ravenhelm/docs/AI-ML-Platform/norns-agent/agent/tools.py:@tool
async def my_new_tool(param: str) -> str:
"""Tool description for the LLM."""
# Implementation
return result -
Add to NORNS_TOOLS list at the end of
tools.py:NORNS_TOOLS = [
# ... existing tools
my_new_tool, # Add here
] -
Update system prompt in
graph.pyif needed:- Add capability to the numbered list
- Add example prompts showing usage
-
Add environment variables to:
/Users/ravenhelm/ravenhelm/secrets/.env/Users/ravenhelm/ravenhelm/docs/AI-ML-Platform/norns-agent/docker-compose.yml
-
Rebuild and deploy:
cd /Users/ravenhelm/ravenhelm/docs/AI-ML-Platform/norns-agent
docker compose build norns-agent
docker compose up -d norns-agent -
Update this wiki page with the new tool documentation