Vision-Agents CLAUDE.md

A project instruction file for a Python monorepo, meaning one repository containing multiple related packages. It documents the project layout, commands, testing rules, and code checks.

In plain words
What is it for?
Use it when changing this uv-managed Python project to find the right directories and run formatting, linting, type checks, unit tests, or integration tests.
Why use it?
It gives coding agents the project-specific rules needed to work consistently across the framework and its plugins.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/getstream/vision-agents/claude-md
Clone the repo
git clone --depth 1 https://github.com/GetStream/Vision-Agents
Per session 1,252 This file is loaded in full into every session.
When invoked 1,252 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.01252 $0.01252
Opus 5 $0.00626 $0.00626
Sonnet 5 $0.00250 $0.00250
Haiku 4.5 $0.00125 $0.00125

Measured 2d ago against content hash 7d27c6d9ce46, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

Vision-Agents CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 120 lines

How it starts

The opening of the file, as written. The whole thing — 120 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

Project overview

Python monorepo managed with uv workspaces. The core framework lives in agents-core/ and plugins live in plugins/ (37+ packages). Python >= 3.10, 3.12 recommended.

Commands

All commands use uv. Never use python -m. If you run into dependency issues, stop and ask.

# Full check (ruff + mypy + unit tests)
uv run --no-sync dev.py check

# Unit tests only (--no-sync avoids uv panic in sandboxed environments)
uv run --no-sync pytest -m "not integration"

# Integration tests (needs .env secrets)
uv run --no-sync pytest -m "integration"

# Lint & format
uv run --no-sync ruff check .
uv run --no-sync ruff format .

# Type check
uv run --no-sync mypy

Testing

  • Framework: pytest. Never mock.
  • @pytest.mark.asyncio is not needed (asyncio_mode = auto).
  • Integration tests use @pytest.mark.integration.
  • NEVER adjust sys.path.
  • Keep unit-tests for the class under the same test class. Do not spread them around different test classes. For example, tests for Agent must be inside TestAgent, etc.
  • ALWAYS test behavior, not calling a path.
  • Use pytest.fixture for test setup, not helper methods
  • NEVER observe method calls in tests; assert on outputs and state.

Python rules

  • Never use from __future__ import annotations.
  • Prefer specific exceptions if they are known. If the exception type is not clear, it is ok to use except Exception as e.
  • Avoid getattr, hasattr, delattr, setattr; prefer normal attribute access.
  • Docstrings: Google style, keep them short.
  • Do not use section comments like # -- some section --
  • Prefer logger.exception() when logging an error with a traceback instead of logger.error("Error: {exc}")
  • Do not use local imports, import at the top of the module
  • Avoid # type: ignore comments.
  • Avoid using Any type.
  • When adding code to an existing file, follow the patterns already established in that file (e.g. error handling style, import guards, naming).

Code style

Read the full file on GitHub · 120 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 120 lines · 1,252 tokens per session scan A 7d27c6d9ce46

Subscribe to this mod's changes

Vision-Agents CLAUDE.md is an instructions file published in the GitHub repository GetStream/Vision-Agents (8,110 stars, last pushed today), licensed Apache-2.0. It adds 1,252 tokens to every session, about $0.0063 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.