Skip to main content

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

ToolDescriptionApproval
bashExecute shell commands🔒 Dangerous commands
read_fileRead file contents (supports ~ expansion)
current_timeGet current date and time
researchSpawn a research agent with all read-only tools (depth: quick/normal/deep)
backgroundSpawn an autonomous background agent for long-running tasks
set_directivesSet persistent behavioral directives injected into the system prompt🔒

Email

Requires Gmail to be connected.
ToolDescriptionApproval
emailsSearch and list emails
read_emailRead full email content
send_emailSend an email🔒

Calendar

Requires Google Calendar to be connected.
ToolDescriptionApproval
calendarSearch and list events
create_calendar_eventCreate an event🔒
edit_calendar_eventEdit an event🔒
delete_calendar_eventDelete an event🔒

Memory

ToolDescriptionApproval
rememberStore a fact🔒
recallSearch stored knowledge
forgetDelete 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.
ToolDescriptionApproval
web_searchSearch the web
web_fetchFetch content from a URL

Automations

ToolDescriptionApproval
create_automationSchedule a task🔒
list_automationsList all automations
update_automationModify an automation🔒
delete_automationRemove an automation🔒
run_automationTrigger immediate run🔒
get_automation_resultGet last run result

Background tasks

ToolDescriptionApproval
cancel_background_taskCancel a running background task by ID🔒
get_background_resultGet the output of a completed background task
list_background_tasksList 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

ToolDescriptionApproval
notifySend a notification🔒

Skills

ToolDescriptionApproval
use_skillActivate 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.

User-defined tools

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.