Documentation Index
Fetch the complete documentation index at: https://docs.ntrp.io/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Tools are capabilities the agent can invoke during a conversation. Some tools require your approval before executing (marked with 🔒).
System & files
| Tool | Description | Approval |
|---|
bash | Execute shell commands | 🔒 Dangerous commands |
read_file | Read file contents (supports ~ expansion) | — |
current_time | Get current date and time | — |
research | Spawn a research agent with all read-only tools (depth: quick/normal/deep) | — |
background | Spawn an autonomous background agent for long-running tasks | — |
set_directives | Set persistent behavioral directives injected into the system prompt | 🔒 |
Email
Requires Gmail to be connected.
| Tool | Description | Approval |
|---|
emails | Search and list emails | — |
read_email | Read full email content | — |
send_email | Send an email | 🔒 |
Calendar
Requires Google Calendar to be connected.
| Tool | Description | Approval |
|---|
calendar | Search and list events | — |
create_calendar_event | Create an event | 🔒 |
edit_calendar_event | Edit an event | 🔒 |
delete_calendar_event | Delete an event | 🔒 |
Memory
| Tool | Description | Approval |
|---|
remember | Store a fact | 🔒 |
recall | Search stored knowledge | — |
forget | Delete facts by query | 🔒 |
Web
Web search uses WEB_SEARCH mode (auto, exa, ddgs, none). EXA_API_KEY is only required when mode resolves to Exa.
| Tool | Description | Approval |
|---|
web_search | Search the web | — |
web_fetch | Fetch content from a URL | — |
Automations
| Tool | Description | Approval |
|---|
create_automation | Schedule a task | 🔒 |
list_automations | List all automations | — |
update_automation | Modify an automation | 🔒 |
delete_automation | Remove an automation | 🔒 |
run_automation | Trigger immediate run | 🔒 |
get_automation_result | Get last run result | — |
Background tasks
| Tool | Description | Approval |
|---|
cancel_background_task | Cancel a running background task by ID | 🔒 |
get_background_result | Get the output of a completed background task | — |
list_background_tasks | List all running background tasks | — |
Background tasks are spawned via the background tool. Results are delivered automatically via SSE when complete — use get_background_result to read the full output.
Notifications
| Tool | Description | Approval |
|---|
notify | Send a notification | 🔒 |
Skills
| Tool | Description | Approval |
|---|
use_skill | Activate a skill for specialized instructions | — |
Obsidian is handled through the /obsidian skill or an external MCP server.
Approval flow
When a tool requires approval, the TUI shows a dialog with the tool name, arguments, and options to approve, reject, or always-allow that tool for the session. See Auto-approve mode for skipping approvals.
Create custom tools in ~/.ntrp/tools/. Each file is a Python module that exports a tools mapping:
from pydantic import BaseModel, Field
from ntrp.tools.core import ToolResult, tool
from ntrp.tools.core.context import ToolExecution
class EchoInput(BaseModel):
text: str = Field(description="Text to echo")
async def echo(execution: ToolExecution, args: EchoInput) -> ToolResult:
return ToolResult(content=args.text, preview="Echoed")
tools = {
"echo": tool(
display_name="Echo",
description="Echo text back to the user.",
input_model=EchoInput,
execute=echo,
)
}
Use mutates=True plus an approval= function for tools that change external state. Use requires={...} to hide a tool unless a service is configured. Restart the server after adding or changing user tools.