Docs / Tools & Commands

Tools & commands

Riverforge has 79 built-in tools — but you never call them by name. You just say what you want in plain English — “read this file”, “search the web”, “look at this screenshot”, “run the tests” — and Riverforge works out which tool to use, and in what order. This page is a reference of what it can do behind the scenes.

You just ask

There’s nothing to memorise and no syntax to learn. Describe the goal and Riverforge picks the right tools on its own:

You say……and it works out to
“What does this file do?”read the file and explain it
“Find where we handle login”search the codebase for the right spot
“Look at this screenshot and tell me what’s broken”read the image you attached
“Look up the latest API for this”search the web and read the real pages
“Find reference images for a dashboard UI”run an image search and show cards
“Run the tests” · “check lint”run your project’s test or lint command
“Remember that I prefer pytest”save it to memory
“Fix the timeout bug and show me the diff”read, edit, show the diff and verify

Which tools are even available depends on your mode — Ask only uses read-only tools, Agent can edit and run things — so you don’t have to think about safety either. See Chat Modes.

What it can do

Here’s everything Riverforge can reach for, grouped by purpose. You don’t invoke these — it’s simply what’s under the hood when you ask. Every call is checked before it runs, so a bad one fails safely instead of corrupting a file.

Web & research

web_search · web_fetch · web_research · image_search · research_ingest_url · research_ingest_pdf

Repo orientation

repo_tree · repo_map · fs_glob · grep_search · list_dir · detect_project · find_symbols · parse_ast · ai_comment_scan

File reads

read_file · read_file_range · read_files · read_binary_file · read_pdf · file_stat

File edits

create_file · write_file · edit_file_single_line · edit_file_substring · edit_file_line_range · edit_file_batch · replace_lines · append_file · apply_patch · revert_patch · delete_file

Filesystem

make_dir · delete_dir · copy_path · move_path · chmod_path · create_symlink · create_temp_file · compress_archive · extract_archive

Memory & recall

memory_search · memory_store · brain_search · brain_store · research_search · recall_step

Git

git_status · git_diff · git_log · git_branch · git_add · git_commit · git_raw · git_blame

Shell & verification

run_shell · run_tests · run_lint · run_build · run_install · run_format · run_typecheck · run_e2e

System & network

system_info · env_get · list_processes · kill_process · dns_lookup · tcp_check · http_request · wait_for_http · sql_query

Editor & control

vscode_open_preview · vscode_terminal_run · open_browser · get_tool_config · update_tool_config · submit_final_answer · delegate_worker_task

Curious what it has? Ask /tools in chat any time for the full live list. When it edits a file, Riverforge also chooses the right kind of edit for you — a small in-place change, a whole-file rewrite, a multi-file patch — so you never have to.

The Todo panel

For multi-step work the agent keeps its own checklist, shown as the Todo panel above the composer. It ticks items off as the run proceeds, so you can see progress at a glance and know what’s left. Simple one-step tasks show no panel at all.

Configurable project commands

Tell Riverforge how your project builds and tests once, and then “run the tests” or “check lint” just works — it doesn’t have to guess the command each time. Set these in the tray under Tool Config.

SettingExample
Default test commandpowershell -ExecutionPolicy Bypass -File scripts/test_all.ps1
Default lint commandpython -m compileall -q src tests
Extra allowed commandspyright, eslint, cargo, dotnet

When a verification tool is called without a command, it uses your configured command first, then falls back to auto-detection of the project’s toolchain.

Custom HTTP tools

You can register your own HTTP-backed tool — a webhook, an internal API, a local service. Use the tray’s Register HTTP Tool button, or the POST /tools/http endpoint. Once registered, Riverforge can reach for it just like a built-in when your request calls for it, with the same approval rules. Your custom tools are saved with your Riverforge data, so they’re there next time.

Examples

Be as casual or as specific as you like — none of these name a tool. Riverforge reads the intent and does the rest.

A coding change, verified

Fix the timeout bug in the HTTP client. Look at the relevant
files first, make the smallest safe change, show me the diff,
then run the tests — don’t call it done until they pass.

A read-only audit

Have a read-only look at how auth works in this repo and tell me
the risks and the files involved. Don’t change anything.

Research with real pages

Look up the current way to do X, read the actual pages (not just
snippets), compare them and cite your sources. Keep anything
worth reusing.

Work from an image

Here’s a screenshot of the bug (attached). Look at it, find the
cause in the code, and fix it.

Show a UI mock-up

Mock up a compact dashboard header and show it to me as a live
preview in the chat.

Teach it something

Remember that this project uses pnpm, not npm.

The more you tell it about the outcome you want — “show me the diff”, “don’t finish until the tests pass”, “keep it minimal” — the better it lines up with how you work. You’re describing goals, never commands.