agent-joule/docs/.doc-examples/reference.md
David Charlot 88a41bedd3 Rebrand Zed -> Joule across UI, docs, embedded assets, and legal
The fork shipped renamed binary/bundle but the product name "Zed" was still
shown everywhere in the UI. Rename the display name to "Joule" (tagline
"Energy-metered agentic coding") while preserving every load-bearing reference.

Display renames (105 .rs files): release_channel display_name, welcome +
onboarding + ai_onboarding, macOS app menu (About/Hide/Quit), window titles,
About panel, settings UI, notifications, update/collab messages, system specs.
Bundle display name (crates/zed/Cargo.toml) -> "Joule" so CFBundleName / the
menu-bar name and the .app are "Joule" (identifier science.transaction.AgentJoule
and the agent-joule binary are unchanged).

Docs (223 .md): product prose Zed -> Joule, fence-aware (code blocks untouched).
Embedded assets (12 JSONC): // comments only.
Legal (4 files): product -> Joule, entity "Zed Industries, Inc." -> "Transaction
Science, Inc.", domain zed.dev -> openie.dev. NOTE: these are structurally Zed's
inherited terms and need a real legal review, not just a rename.

Deliberately PRESERVED (renaming would break the app): font aliases ("Zed Plex
Sans"/".ZedMono" in text_system + assets), HTTP header names (X-Zed-Predict-*),
zed:: action ids, app/bundle identifiers (dev.zed.Zed*, Zed-Editor-* product ids),
zed.dev URLs, ZED_* env vars, crate/package names, "Zed Industries" in non-legal
attribution, and the {zed,Zed} config-dir glob.

Signed + notarized + stapled as Joule.app, installed to /Applications, verified
(Gatekeeper: Notarized Developer ID, FH93XC2VRR). Caveat: test-code string
literals were renamed too, so some `cargo test` assertions may need updating.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-03 02:23:35 -04:00

103 lines
4 KiB
Markdown

<!--
GOLD STANDARD EXAMPLE: Reference Documentation
This example demonstrates documentation for API/reference content like tools,
actions, or other enumerable items.
Key patterns to note:
- Anchor IDs on categories and individual items for deep-linking
- Opening paragraph explains what these are and where they're used
- Organized into logical categories
- Each item has a clear, actionable description
- Links to related configuration docs
- "See Also" section for related topics
-->
---
title: AI Agent Tools - Joule
description: Built-in tools for Joule's AI agent including file editing, code search, terminal commands, web search, and diagnostics.
---
# Tools
Joule's built-in agent has access to these tools for reading, searching, and editing your codebase. These tools are used in the [Agent Panel](./agent-panel.md) during conversations with AI agents.
You can configure permissions for tool actions, including situations where they are automatically approved, automatically denied, or require your confirmation on a case-by-case basis. See [Tool Permissions](./tool-permissions.md) for the list of permission-gated tools and details.
To add custom tools beyond these built-in ones, see [MCP servers](./mcp.md).
## Read & Search Tools {#read-search-tools}
### `diagnostics` {#diagnostics}
Gets errors and warnings for either a specific file or the entire project, useful after making edits to determine if further changes are needed.
When a path is provided, shows all diagnostics for that specific file.
When no path is provided, shows a summary of error and warning counts for all files in the project.
### `fetch` {#fetch}
Fetches a URL and returns the content as Markdown. Useful for providing docs as context.
### `find_path` {#find-path}
Quickly finds files by matching glob patterns (like `**/*.js`), returning matching file paths alphabetically.
### `grep` {#grep}
Searches file contents across the project using regular expressions, preferred for finding symbols in code without knowing exact file paths.
### `list_directory` {#list-directory}
Lists files and directories in a given path, providing an overview of filesystem contents.
### `read_file` {#read-file}
Reads the content of a specified file in the project, allowing access to file contents.
### `search_web` {#search-web}
Searches the web for information, providing results with snippets and links from relevant web pages, useful for accessing real-time information.
## Edit Tools {#edit-tools}
### `copy_path` {#copy-path}
Copies a file or directory recursively in the project, more efficient than manually reading and writing files when duplicating content.
### `create_directory` {#create-directory}
Creates a new directory at the specified path within the project, creating all necessary parent directories (similar to `mkdir -p`).
### `delete_path` {#delete-path}
Deletes a file or directory (including contents recursively) at the specified path and confirms the deletion.
### `edit_file` {#edit-file}
Edits files by replacing specific text with new content.
### `move_path` {#move-path}
Moves or renames a file or directory in the project, performing a rename if only the filename differs.
### `write_file` {#write-file}
Creates a new file or overwrites an existing file with completely new contents.
### `terminal` {#terminal}
Executes shell commands and returns the combined output, creating a new shell process for each invocation.
## Other Tools {#other-tools}
### `spawn_agent` {#spawn-agent}
Spawns a subagent with its own context window to perform a delegated task. Useful for running parallel investigations, completing self-contained tasks, or performing research where only the outcome matters. Each subagent has access to the same tools as the parent agent.
## See Also {#see-also}
- [Agent Panel](./agent-panel.md) — Where you interact with AI agents
- [Tool Permissions](./tool-permissions.md) — Configure which tools require approval
- [MCP Servers](./mcp.md) — Add custom tools via Model Context Protocol