Skip to main content

Interactive system and architecture diagram library

Project description

sysatlas

Sponsor

For software architects who keep redrawing the same diagram because it got unreadable — and for the AI coding assistants that keep the diagrams in sync with the code.

sysatlas — read/write loops around the ontology

Most diagram tools let you cram everything onto one canvas, then leave you fighting the layout engine. sysatlas does the opposite: focused views (~10 components each), and splitting one system into many small diagrams is a first-class operation.

It works in both directions:

Forward — design before code

You describe a system in Python and:

  • Split it into focused views — storefront, payments, async backbone — each one fits on a slide.
  • Cross-reference between views with auto-detected stub nodes, so a component defined in one view shows up as a ghost reference in others.
  • Annotate components with ISO 25010 quality attributes (security: critical, performance: high) — rendered as coloured badges.
  • Trace how things relate across views (Cart depends_on Payments, APIController realizes API) using SysML link vocabulary.
  • Ground the whole thing in ISO 42010 (Stakeholders / Concerns / Viewpoints / Views) so the why is captured alongside the what.

Backward — reflect after the code lands

You point sysatlas at an existing source tree and it reads the real structure:

import sysatlas

# Python project
r = sysatlas.reflect("src/")
m = r.to_system_map(title="src internals")
m.save("docs/reflection/module-map.html")

# Rust crate  (pip install 'sysatlas[reflect-rust]')
r = sysatlas.reflect_rust("my-crate/")
m = r.to_system_map(title="my-crate internals")
m.save("docs/reflection/module-map.html")

Static analysis — no execution, safe on broken or uncompiled code. The output is the same SystemMap the forward flow produces, so a thin human-authored "annotation overlay" (qualities, traces, viewpoints) can be merged onto reflected structure via r.merge_with(overlay). Drift between intent and reality becomes visible instead of silent.

The intended loop

  1. Plan the change with a forward-flow diagram on a feature branch.
  2. Implement the feature.
  3. Reflect the branch (sysatlas.reflect(...)) and commit the regenerated diagrams alongside the code. Reviewers see structure and intent change together.

Output is a single self-contained HTML file — no server, no extra runtime dependencies, opens in any browser.

pip install sysatlas                        # Python reflection included
pip install 'sysatlas[reflect-rust]'        # + Rust crate reflection

Using sysatlas with an AI coding assistant

sysatlas ships a guide aimed at LLMs. Tell your coding assistant (Claude Code, Cursor, Aider, …) to read it before working on this repo. The one-liner to paste into your CLAUDE.md / .cursorrules / AGENTS.md:

Before editing this project, read sysatlas's LLM guide: python -c "import sysatlas; print(sysatlas.llm_guide())". After any structural change (add/remove/rename modules or components), regenerate the affected diagrams under docs/reflection/ using sysatlas.reflect(...) and commit them with the code change.

The guide tells the assistant exactly which symbols are public, which fields the ontology accepts, and that diagrams are part of the deliverable — not an afterthought.

Where to look

Apache 2.0 licensed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sysatlas-0.2.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sysatlas-0.2.0-py3-none-any.whl (99.8 kB view details)

Uploaded Python 3

File details

Details for the file sysatlas-0.2.0.tar.gz.

File metadata

  • Download URL: sysatlas-0.2.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sysatlas-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9ff5ceeb51dc57b38cb71fa4c9f5be551443b8db27e7ba3637892d073aedd81d
MD5 4d9f90549d80e74975255fd4f6e08a1d
BLAKE2b-256 3bd9f2302f6352ddea85f3b1beb8cba1b2ad58d7bc61de7b671a25b2cf0da895

See more details on using hashes here.

Provenance

The following attestation bundles were made for sysatlas-0.2.0.tar.gz:

Publisher: publish.yml on CServinL/sysatlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sysatlas-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sysatlas-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 99.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sysatlas-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f39d56b9c88e98a31311324b7637ab9556ece6c321dbfa80901cb6c6de6e472
MD5 10f66105ad001828582667b926283993
BLAKE2b-256 d864a918a91fd52eb4af8aec32976ead8e2768c3f759fe50acf3c69f2ca4635e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sysatlas-0.2.0-py3-none-any.whl:

Publisher: publish.yml on CServinL/sysatlas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page