Skip to content
Docs Menu
Documentation

Tools

All tools registered in packages/nikcli/src/tool/registry.ts with descriptions in *.txt files.

Tool Registry

Tools are registered in ToolRegistry.all(). The registry filters tools depending on the model (e.g., apply_patch vs edit/write) and experimental flags.

Custom tools

Custom tools can be injected from plugins or from .nikcli/tool/*.ts.

Search tools

codesearch and websearch are enabled only for the nikcli provider or when NIKCLI_ENABLE_EXA is set.

File Ops

Core

read / write / edit

Primary file I/O tools with strict validation in Tool.define().

Discovery

glob / list / tree

Filesystem enumeration utilities backed by ripgrep where applicable.

Atomic

apply_patch / multiedit

Patch-based and atomic multi-edit workflows for complex changes.

Search & Context

Search

grep / codesearch / websearch

Local regex search, Exa-backed code search, and web search.

Context

context_collect / context_search / context_related

Workspace context extraction, symbol analysis, and dependency mapping.

Memory

memory_search

Searches persisted memory for relevant prior context.

Docs & RAG

Docs

docs_* tools

Docs load/search/add/unload are defined in packages/nikcli/src/tool/docs_*.ts.

RAG

rag_* tools

Index/search/reset/status wrappers around packages/nikcli/src/rag.

System & Agent

System

bash / lsp

Shell execution and LSP intelligence (optional tool via flags).

Agentic

task / subagents / todo

Subagent orchestration and todo tracking for multi-step tasks.

Flow

plan_enter / plan_exit

Plan mode coordination when NIKCLI_EXPERIMENTAL_PLAN_MODE is enabled.

Full Tool Index

Tool ID Description Source
invalid Fallback for unknown tool ids. src/tool/invalid.ts
question Ask the user a question (CLI only). src/tool/question.ts
bash Run shell commands. src/tool/bash.ts
read Read file contents. src/tool/read.ts
tree Directory tree listing. src/tool/tree.ts
glob Glob file discovery. src/tool/glob.ts
grep Regex search in files. src/tool/grep.ts
edit Exact text replacements. src/tool/edit.ts
write Write/overwrite files. src/tool/write.ts
subagents Discover or run subagents. src/tool/subagents.ts
task Run a subagent task. src/tool/task.ts
docs_add Add documentation from URL. src/tool/docs_add.ts
docs_search Search local docs library. src/tool/docs_search.ts
docs_load Load docs into context. src/tool/docs_load.ts
docs_unload Unload docs from context. src/tool/docs_unload.ts
docs_context Show docs context. src/tool/docs_context.ts
docs_request Suggest docs when missing. src/tool/docs_request.ts
docs_gap_report Report docs gaps. src/tool/docs_gap_report.ts
smart_docs Search + auto-load docs. src/tool/smart_docs.ts
context_collect Collect workspace context. src/tool/context_collect.ts
context_search Search workspace text. src/tool/context_search.ts
context_related Find related files. src/tool/context_related.ts
context_diagnostics LSP diagnostics. src/tool/context_diagnostics.ts
memory_search Search stored memory. src/tool/memory_search.ts
rag_index Index content for RAG. src/tool/rag_index.ts
rag_search Vector search. src/tool/rag_search.ts
rag_status RAG status. src/tool/rag_status.ts
rag_reset Reset RAG index. src/tool/rag_reset.ts
webfetch Fetch URL content. src/tool/webfetch.ts
todowrite Write todo list. src/tool/todo.ts
todoread Read todo list. src/tool/todo.ts
websearch Web search via Exa. src/tool/websearch.ts
codesearch Code search via Exa. src/tool/codesearch.ts
skill Load skills. src/tool/skill.ts
apply_patch Patch-based edits. src/tool/apply_patch.ts
lsp LSP tool (experimental flag). src/tool/lsp.ts
batch Batch tool calls (experimental). src/tool/batch.ts
plan_enter Enter plan mode. src/tool/plan.ts
plan_exit Exit plan mode. src/tool/plan.ts