Resources · Documentation

Documentation

Tools

The coding tools agents need ship in the server binary. Optional capabilities and MCP servers add more when a workspace needs them.

On this page

Built-in tools

A fresh prokop init can work with files, search code, run commands, fetch the web, ask structured questions, manage tasks, and delegate research without installing a separate tool pack.

Built-in and product tools take precedence when an external extension declares the same name.

Tool Purpose
read-file Read text files with line numbers or list a directory
file-to-markdown Convert PDF, Office, LibreOffice, and ZIP files into readable Markdown
write-file Create a file or deliberately replace its full contents
edit Make one targeted string replacement
edit-range Replace line ranges with revision checking
multiedit Apply several replacements to one file atomically
apply-patch Apply a patch across one or more files
glob Find files by path pattern
grep Search file contents with regular expressions
ls Explore a directory as a tree

Editing tools enforce workspace boundaries and ask before sensitive operations. Existing files are normally changed with targeted edits instead of full rewrites.

Shell and terminal

The shell tool starts a fresh process for one command. Persistent PTY sessions are available through the terminal tool when a working directory, environment changes, a warm build process, or an interactive prompt needs to survive between calls.

Dangerous commands, filesystem modifications, network operations, and work outside the workspace can require explicit permission.

Git worktrees

The git-worktree tool can create, list, check the status of, and remove Git worktrees. A created path is registered with the workspace so later file tools can use it. Removing a worktree requires explicit approval.

Web and browser

Tool Purpose
webfetch Fetch a URL and convert it to readable text or Markdown
tavily-search Search the web with date, topic, and domain filters
Browser tools Read tabs and interact with pages through Prokop Browser

Web search requires your own Tavily API key. Browser automation requires the Prokop Browser extension connected to the same server. Browser tools can be added to a custom preconfig when you want an agent to use them.

Interaction and task management

The question tool renders typed forms for confirmation, free text, single selection, or multiple selection. The todowrite and todoread tools let an agent keep a visible task list for longer work.

The task tool delegates focused work to isolated subagents. Subagents can inspect a codebase without flooding the parent conversation with every file read.

Capability tools

Most of these appear only when the corresponding workspace capability is enabled. The skill tool appears whenever discoverable skills are available to the active preconfig, even when skill management is disabled.

Tool Capability Purpose
memory Memory Manage durable preferences and project facts
session_search Session Search Find and read earlier conversations
workflow Workflow Decompose, fan out, and synthesize parallel work
skill_manage Skills Create, patch, update, or delete workspace skills
skill Available skills Load one available skill’s procedure
scheduler Scheduling Create and manage scheduled jobs

See Workspaces & sessions for storage and permission behavior.

MCP tools

Connect an MCP server and its tools become available to the workspace. Prokop supports local stdio processes and remote Streamable HTTP/SSE servers with optional request headers.

MCP definitions live in <workspace>/.prokopai/mcp.json. See Configuration.

Permissions and asks

Tools can pause and ask for authority or input. For a permission request, you can approve once, create a reusable grant, or deny the operation. Grants are scoped and can be reviewed or revoked in the client.

This permission layer is separate from server authentication. Authentication controls who can connect. Tool permissions control what an agent may do after connecting.

External tool modules

Prokop loads user-prepared tools from its configured tools directory. The default is ~/.prokopai/tools/; prokop init --tools-path <path> stores another path in config.json, and PROKOPAI_TOOLS_PATH overrides it. Prokop does not download tools, install their dependencies, manage their builds, update them, or remove them for you.

Place each extension in its own directory:

~/.prokopai/tools/
  my-tool/
    tool.ts
    package.json   # optional, dependencies must already be prepared
    VERSION        # optional

The runtime loads the entry recorded by an existing .install-manifest.json, then falls back to tool.js and tool.ts. Restart the server when you need an immediate guaranteed reload.

Tool contracts come from @capekai/tool. A minimal TypeScript tool exports a definition and an execute function:

import type { ToolContext, ToolDefinition, ToolResult } from '@capekai/tool';

export const definition: ToolDefinition = {
  name: 'word-count',
  description: 'Count words in a string.',
  inputSchema: {
    type: 'object',
    properties: {
      text: { type: 'string' },
    },
    required: ['text'],
  },
};

export async function execute(
  input: { text: string },
  _ctx: ToolContext,
): Promise<ToolResult> {
  const count = input.text.trim().split(/\s+/).filter(Boolean).length;
  return { success: true, result: { count } };
}

External tools should validate input and return the shared ToolResult contract. Use ctx.ask() when an operation needs permission or structured input.

Spotted something wrong or missing? Open an issue ↗