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 can be injected from plugins or from .nikcli/tool/*.ts.
codesearch and websearch are enabled only for the nikcli provider or when NIKCLI_ENABLE_EXA is set.
File Ops
read / write / edit
Primary file I/O tools with strict validation in Tool.define().
glob / list / tree
Filesystem enumeration utilities backed by ripgrep where applicable.
apply_patch / multiedit
Patch-based and atomic multi-edit workflows for complex changes.
Search & Context
grep / codesearch / websearch
Local regex search, Exa-backed code search, and web search.
context_collect / context_search / context_related
Workspace context extraction, symbol analysis, and dependency mapping.
memory_search
Searches persisted memory for relevant prior context.
Docs & RAG
docs_* tools
Docs load/search/add/unload are defined in packages/nikcli/src/tool/docs_*.ts.
rag_* tools
Index/search/reset/status wrappers around packages/nikcli/src/rag.
System & Agent
bash / lsp
Shell execution and LSP intelligence (optional tool via flags).
task / subagents / todo
Subagent orchestration and todo tracking for multi-step tasks.
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 |