Skip to content
nikcli
Docs
Documentation

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.

Gating

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.

Permission modes override this surface

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.

Orchestration

Execution

bash / monitor

Run shell commands directly or keep them alive in the background with persisted logs.

Subagents

task / delegation / delegator

Launch delegated agents, inspect or cancel them, and supervise background jobs.

Task tracking

todowrite / todoread

Track structured task state inside a session and surface progress to the user.

Guidance

advisor

Request background strategic advice from an advisor agent when available.

Visualization

opentui

Render tables, charts, timelines, and progress widgets directly in the terminal UI.

Self-extension

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.

Open reference →

Context & Memory

Workspace context

context_* / memory_search

Collect repo context, related files, diagnostics, and prior-session memory.

External repositories

repo_clone / repo_overview

Clone or refresh a remote repository into the managed repos directory, then produce a high-level overview of its structure.

Session goals

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.

Discovery

search_tools

Search the live tool registry by keyword to discover which tool IDs are available in the current session.

Code execution

exec_code

Execute JavaScript/TypeScript code with all registered tools available as async globals, up to a configurable timeout.

Integrations & Media

Generative media

generate_image / speak

Create images and play text-to-speech output using the configured providers.

Instruction packs

skill

Load a skill to bring focused instructions into the current session.

Browser automation

browser_control

Navigate, snapshot, click, type, and capture the action log of a browser session.

Computer use

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