Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All of v2.1.174 Home All releases olderv2.1.173 v2.1.175newer
Claude Code v2.1.174

Projects Tool — Read and Write claude.ai Project Docs

What

Claude Code can now interact with the claude.ai Project attached to a session. Project docs persist across sessions and surfaces (chat, Cowork, Claude Code), so anything written here is visible to the user and their team on claude.ai.

Usage

The session is attached to a project automatically when CLAUDE_PROJECT_UUID is set in the environment (the harness sets this). Claude uses five methods dispatched on a method field:

  • project_info — retrieve project name, description, custom instructions, doc list, and knowledge-base budget stats
  • project_read — read one doc by path; large docs are written to a local temp file
  • project_search — run a RAG query against the project's knowledge base
  • project_write — create or replace a doc (inline content or local_path upload)
  • project_delete — delete a doc by path
Details
  • Requires claude.ai authentication. Not available via Bedrock, Vertex, or other third-party providers.
  • OAuth scopes user:projects:read and user:projects:write are requested automatically; if absent, the token is refreshed.
  • Blocked if CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC is set or if the org's compliance policy (e.g. HIPAA) disables project writes.
  • The project's docs are injected verbatim into every chat turn while total knowledge is under the search threshold (~50k tokens). Above that threshold, chat degrades to retrieval (RAG) mode.
  • project_write checks the budget before writing. Passing force: true overrides the injection-threshold guard but not the hard cap.
  • Writing a new bare filename (no /) namespaces it to claude/<name> automatically; pass an explicit nested path to override.
  • local_path uploads a file from the working directory directly — its contents never enter the model's context window.
Evidence

Projects tool implementation (search for "project_info", "project_read", "project_write", "project_search", "project_delete" together in a method dispatch, or "Projects API:" in the error class name ProjectsApiError)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

See this entry in the whole of v2.1.174 →