Tools
Public tools registered in packages/nikcli/src/tool/registry.ts plus tool-gating behavior.
Tool Registry
Tools are registered in packages/nikcli/src/tool/registry.ts. The registry filters
them based on model capabilities, client type, and experimental flags.
Some GPT-family models use apply_patch instead of edit and
write. websearch and codesearch require provider or env
setup. lsp needs NIKCLI_EXPERIMENTAL_LSP_TOOL;
batch needs experimental.batch_tool in config;
plan_enter / plan_exit need experimental plan mode on the CLI client.
question is available on app, CLI, and desktop clients.
The active permission mode
(require_approval / approve_for_me / full_access /
custom) is layered on top of the registry: even when a tool is registered
here, the mode decides whether it runs without prompting, prompts the user, or is denied.
The TUI command palette exposes a Permissions dialog to switch modes.
Files & Search
read / tree / glob / grep
Read files, inspect directory structure, and search local content quickly.
edit / write / apply_patch
Perform in-place edits, full writes, or structured patch-based updates.
webfetch / websearch / codesearch
Fetch web pages and optionally search the web or remote code indexes when enabled.
Orchestration
bash / monitor
Run shell commands directly or keep them alive in the background with persisted logs.
task / delegation / delegator
Launch delegated agents, inspect or cancel them, and supervise background jobs.
todowrite / todoread
Track structured task state inside a session and surface progress to the user.
advisor
Request background strategic advice from an advisor agent when available.
opentui
Render tables, charts, timelines, and progress widgets directly in the terminal UI.
plugin
Write a plugin into its own folder, install its dependencies and hot-reload it, so nikcli gains hooks and tools on request. Asks the plugin permission by default.
Context & Memory
context_* / memory_search
Collect repo context, related files, diagnostics, and prior-session memory.
repo_clone / repo_overview
Clone or refresh a remote repository into the managed repos directory, then produce a high-level overview of its structure.
create_goal / get_goal / update_goal
Create a verifiable session goal with an optional token budget, read its current state, and mark it complete or blocked.
search_tools
Search the live tool registry by keyword to discover which tool IDs are available in the current session.
exec_code
Execute JavaScript/TypeScript code with all registered tools available as async globals, up to a configurable timeout.
Integrations & Media
generate_image / speak
Create images and play text-to-speech output using the configured providers.
skill
Load a skill to bring focused instructions into the current session.
browser_control
Navigate, snapshot, click, type, and capture the action log of a browser session.
computer
Capture screenshots and send mouse / keyboard input to a desktop session for computer-use workflows.
Full Tool Index
| Tool ID | Description | Source |
|---|---|---|
question | Ask the user a structured question. | src/tool/question.ts |
bash | Run shell commands. | src/tool/bash.ts |
monitor | Run long-lived shell commands in the background. | src/tool/monitor.ts |
read | Read file contents. | src/tool/read.ts |
tree | Show a directory tree. | src/tool/tree.ts |
glob | Find files by glob pattern. | src/tool/glob.ts |
grep | Search file contents with regex. | src/tool/grep.ts |
edit | Apply exact in-place text edits. | src/tool/edit.ts |
write | Write or overwrite files. | src/tool/write.ts |
task | Launch a delegated subagent. | src/tool/task.ts |
delegation | Inspect or control background delegations. | src/tool/delegation.ts |
delegator | Monitor and supervise background delegation jobs. | src/tool/delegator.ts |
code_mode | Run an orchestration script in a confined interpreter that calls other tools programmatically, keeping intermediate results out of the context window. | src/tool/code_mode.ts |
context_collect | Collect workspace context from files. | src/tool/context_collect.ts |
context_related | List files related to an entry file. | src/tool/context_related.ts |
context_diagnostics | List LSP diagnostics. | src/tool/context_diagnostics.ts |
memory_search | Search past session memory. | src/tool/memory_search.ts |
generate_image | Generate images from prompts. | src/tool/generate_image.ts |
webfetch | Fetch and convert URL content. | src/tool/webfetch.ts |
todowrite | Write the session todo list. | src/tool/todo.ts |
todoread | Read the current todo list. | src/tool/todo.ts |
websearch | Search the web via Exa when enabled. | src/tool/websearch.ts |
codesearch | Search code via Exa when enabled. | src/tool/codesearch.ts |
skill | Load a skill definition. | src/tool/skill.ts |
apply_patch | Patch files with structured diffs. | src/tool/apply_patch.ts |
speak | Convert text to speech and play audio. | src/tool/speak.ts |
opentui | Render terminal dashboards and rich visualizations. | src/tool/opentui.ts |
plugin | Create, update, list, reload and remove nikcli plugins; new plugins load without a restart. | src/tool/plugin.ts |
artifact | Publish a local file as a hosted page on nikcli-ai.dev, openable in a browser or the mobile app. | src/tool/artifact.ts |
lsp | LSP tool exposed behind experimental flags. | src/tool/lsp.ts |
batch | Batch tool calls behind experimental flags. | src/tool/batch.ts |
plan_enter | Enter plan mode. | src/tool/plan.ts |
plan_exit | Exit plan mode. | src/tool/plan.ts |
advisor | Receive background strategic guidance. | src/tool/advisor.ts |
repo_clone | Clone or update a Git repository into the managed repos directory. | src/tool/repo_clone.ts |
repo_overview | Produce a high-level overview of a managed repository clone. | src/tool/repo_overview.ts |
search_tools | Search the tool registry by keyword to discover available tool IDs. | src/tool/search_tools.ts |
exec_code | Execute JavaScript/TypeScript code with tool globals available as async functions. | src/tool/exec_code.ts |
create_goal | Create a session goal with an objective and optional token budget. | src/tool/goal.ts |
get_goal | Read the current goal state for this session. | src/tool/goal.ts |
update_goal | Mark the session goal as complete or blocked. | src/tool/goal.ts |
invalid | Rejected invalid tool-call shape. | src/tool/invalid.ts |
computer | Computer-use tool: capture screenshots, send mouse and keyboard input to a desktop session. | src/tool/computer.ts |
browser_control | Drive a browser: navigate, snapshot, click, type, and capture the action log. | src/tool/browser-control.ts |