Start with your repository.
- Install with Homebrew:
brew install scryr-app/tap/scryr - Copy the prompt into your coding agent to create an
index.scryfile. - Review the file, then run
scryr servefrom your repository.
Your agent just changed twelve services.
graph TD
Web --> API
API --> DB
API --> Cache
API --> Queue
Queue --> Worker
Worker --> DB
Worker --> API
Web --> Auth
Auth --> APIHere’s a rectangle.Another One.
Yay?
Give it a repository. Ask for index.scry.
Turn its understanding into something you can examine.
from scryr import Diagram, Info, Manifest
from scryr.types import ProgrammingLanguage
cache = Manifest(name="northwind_redis")
api = Manifest(
manifest_id="services/api",
name="nwapi",
connections=[cache],
info=Info(
language=ProgrammingLanguage.python,
owner_team="Platform",
),
)
commerce = Diagram(
name="Northwind Commerce",
manifests=[api, cache],
)
Trace connections. Open a component’s Info card for its stack, owner, docs, and source.
Keep the architecture beside you while you change the code.

Check types and diagram references, then open the local map. Watch mode rebuilds it when your manifest changes.
$ scryr check
$ scryr serve --watchConnect test results and runtime evidence to each service.
Reuse the same architecture model in your own tools.
Publish JUnit results and completed GitHub Actions runs. See pass/fail counts and workflow status in the diagram.
Connect CI evidence$ scryr report tests --manifest api \
--run-id "$GITHUB_RUN_ID" \
--observed-at "$RESULTS_COMPLETED_AT"
$ scryr report actions --manifest api \
--event-file workflow-run.json --branch mainOpen a component’s provider-backed snapshot. Run its named query from the CLI and export JSON for a script or investigation.
Connect runtime metrics$ scryr query --list
$ scryr query requestRate --manifest api
$ scryr query requestRate --manifest api \
--json > request-rate.jsonExport Scryr’s JSON Schema to power code generation, editor tooling, validation, and CI checks from the same typed model as your map.
Inspect the model$ scryr export json > architecture.json
$ scryr inspect schema > scryr-schema.jsonA Forge keeps tool versions and tasks in your architecture manifest.
Generate the files a developer needs to work on the system.
from scryr import Forge
local = Forge(
name="Developer environment",
tools={"python": "3.14", "postgres": "17"},
tasks={"test": "pytest"},
)$ scryr export mise \
--forge "Developer environment" > mise.toml
$ scryr export compose \
--forge "Developer environment" > compose.yaml
$ scryr export devcontainer \
--forge "Developer environment" > devcontainer.jsonmise.tomlTool versions and runnable tasks.
compose.yamlLocal services, including PostgreSQL and Redis.
devcontainer.jsonA container workspace with editor extensions.