CLAUDE.md · GetStream/Vision-Agents
CLAUDE.md from GetStream/Vision-Agents: 120 lines covering Project overview, Commands, Testing, Python rules and more.
Template by GetStream
Chalk Labs
Need help deploying CLAUDE.md · GetStream/Vision-Agents?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/GetStream/Vision-Agents/main/CLAUDE.md -o CLAUDE.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: voice-agents, code-generation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
A CLAUDE.md file: project memory Claude Code loads at the start of every session.
- For
- Claude Code
- Length
- 120 lines
- File
CLAUDE.md
Sections
- Project overview
- Commands
- Testing
- Python rules
- Code style
- Plugins
- Token efficiency
- Changelog
First lines (shown under the repo's Apache-2.0 license)
# 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.
```bash
# 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
### Imports:
- ordered as: stdlib, third-party, local package, relative. Use `TYPE_CHECKING` guard for imports only needed by type annotations.
- Never import from private modules (`_foo`) outside of the package's own `__init__.py`. Use the public re-export (e.g. `from vision_agents.testing import TestResponse`, not
`from vision_agents.testing._run_result import TestResponse`).
### Naming:
- private attributes and methods use a leading underscore (`_sessions`, `_warmup_agent`). Public API is plain snake_case.
### Type annotations:
- use them everywhere. Modern syntax: `X | Y` unions, `dict[str, T]` generics, full `Callable` signatures, `Optional` for nullable params.
### Logging:
module-level `logger = logging.getLogger(__name__)`. Use `debug` for lifecycle, `info` for notable events, `error` for failures without a traceback,
`exception` for errors with traceback.
- In hot paths (audio processing, event handling), guard debug logging behind `if logger.isEnabledFor(logging.DEBUG):` to avoid formatting overhead when debug is disabled.
### Constructor validation:
- raise `ValueError` with a descriptive message for invalid args. Prefer custom domain exceptions over generic ones.
### Async patterns:
- async-first lifecycle methods (`start`/`stop`). Support `__aenter__`/`__aexit__` for context manager usage.
- Use `asyncio.Lock`, `asyncio.Task`, `asyncio.gather` for concurrency.
- Clean up resources in `finally` blocks.
### Method order:
- `__init__`, public lifecycle methods, properties, public feature methods, private helpers, dunder methods.
### Other
- Smallest possible diff. Prefer deleting code over adding it.
- Don't add error handling, logging, validation, comments, abstractions, config options, or "future-proofing" I didn't
ask for.
- Match the style and abstraction level of surrounding code. Don't introduce new patterns or helpers unless asked.
- Fix root causes, not symptoms. No try/except to swallow bugs.
- Change only what I asked for. Don't refactor adjacent code — ask first.
- Do not remove valid comments when editing/refactoring code.
## Plugins
- In every `plugins/*/pyproject.toml`, the wheel target must be `packages = ["vision_agents"]`. Listing `"."` pulls `tests/`, `README.md`, `example/`, etc. into the published wheel.
- Each plugin must keep `readme = "README.md"` in `[project]` and a `README.md` next to its `pyproject.toml` so PyPI renders a description page.
## Token efficiency
- When making multiple related changes to the same file, combine them into fewer Edit calls with enough surrounding context, rather than one edit per change.
- Run tests with Bash directly. Only use subagents for test runs when you need to do other work in parallel.
- Only use TodoWrite for tasks with 5+ steps. Don't update it after every individual edit.
## Changelog
- Lives in `CHANGELOG.md` at the repo root.
- Organised by version heading (`# v0.4.0`), then sections: **Breaking Changes**, **New Features**, **Bug Fixes**.
- Only include user-facing changes (public API breaks, features, fixes). Skip docs-only and CI-only commits.
- Reference PR numbers inline, e.g. `(#374)`.
- To generate: `git log <last-tag>..HEAD --oneline --no-merges`, then classify each commit.Signals
- Stars
- 8,185
- Forks
- 697
- Open issues
- 3
- Last commit (this folder)
- May 29, 2026 (5 months ago)
- Last release
- Aug 13, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/GetStream/Vision-Agents
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from GetStream
- 0.645score
stream-android
GetStream
Build and integrate Stream Chat, Video, and Feeds in Android apps.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
stream-feeds-migration
GetStream
Generate the v2 -> v3 sync mapping for a Stream Activity Feeds app by sampling its live v2 activities and reactions and, when the app's v2 integration code is…
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
stream-react
GetStream
Build, integrate, audit, or upgrade Stream Chat, Video, Feeds, and Moderation in React / Next.js web apps - the default skill for web work.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
stream
GetStream
Stream overview, CLI, and router for Chat, Video, Feeds, Moderation, and Agents.
SkillAFreshness: A★ 20Claude Code +9 - 0.644score
stream-swift
GetStream
Build, integrate, migrate to, and answer how-to questions for Stream Chat, Video, and Feeds in Swift / SwiftUI / UIKit / iOS apps - including AI assistants…
SkillAFreshness: A★ 20Claude Code - 0.615score
Vision-Agents
GetStream
Python framework for real-time voice and vision agents that process video with pluggable models and processors over WebRTC.
HarnessAFreshness: A★ 8.2K↓ 418/wk
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get CLAUDE.md · GetStream/Vision-Agents running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
CLAUDE.md · GetStream/Vision-Agents. Agent Mart. https://agentmart.dev/templates/getstream-vision-agents-claude-md (last updated 2026-10-24)