Skip to main content

horsegraph

Plan node graphs (NODE-GRAPH.json) read through Tiny Horse canonical storage and visualized as ClaySpace worlds.

  • Tiny Horse is the source of truth. horsegraph reads the graph from a bound checkout (and can run tinyhorse doctor on it), or straight from the canonical bundle in storage (file: or gdrive://), or from a Drive project by name. When it reads from storage it fetches and verifies the bundle and reads the graph at canonical HEAD, so the view shows what was parked, not unparked local edits.
  • ClaySpace draws it. Every node is a ClaySpace Cell, every dependency is a Cell with an arrowhead, and the whole graph is a valid clayspace.world.snapshot. The HTML is ClaySpace's own self-contained orbit preview, plus a label, hover-detail and legend overlay.
pip install horsegraph            # add [gdrive] for Drive storage / --project

Use

# from a Tiny Horse-bound checkout (default graph path docs/runner-gateway/NODE-GRAPH.json)
horsegraph render --checkout . --doctor --out plan.html --world plan.world.json

# straight from canonical storage, no checkout needed
horsegraph render --storage gdrive://FOLDER_ID/Demo.bundle
horsegraph render --project "Demo"            # resolved like `tinyhorse claim`

# plan views
horsegraph next  --checkout .                 # "Needs you now" / "Claude starts next"
horsegraph path  --checkout .                 # critical path to the goal node
horsegraph check --checkout .                 # validate; exit 1 on warnings (e.g. done before its deps)

# any JSON file, no Tiny Horse
horsegraph render --file examples/NODE-GRAPH.json

--graph changes the path inside the repo; --ref reads a tag or commit from storage instead of HEAD.

The ClaySpace world it writes with --world opens with the usual tools (clayspace world inspect, clayspace world preview).

Reading the 3D view

Shape Meaning
low green slab done
blue block open, Claude's (agent) node
tall amber tower with a flagpole open owner action, needs you
cyan on the critical path to the goal
pink + sphere goal node
grey, thin parked (later, after-proof)

Columns run left to right by dependency depth, and rows group by track. Drag to orbit, scroll to zoom, and hover a label for the node's title, deps and the contract items it advances.

Graph format

{
  "title": "…", "goal": "G-RELEASE",
  "tracks": {"CLI": "Command Line Interface"},
  "nodes": [
    {"id": "CLI-2", "title": "…", "owner": "agent", "status": "open",
     "deps": ["CLI-1", "CORE-2"], "track": "CLI", "closes": ["C2"]}
  ]
}

owner is agent or owner. status is done, open, later, after-proof or available-verified. Extra fields are kept. Cycles, unknown deps and duplicate ids are rejected.

Python

from horsegraph import from_storage, render
graph, prov = from_storage("file:/srv/git/demo.bundle")
print(graph.critical_path(), [n.id for n in graph.ready("owner")])
render(graph, "plan.html", provenance=prov.to_dict(), subtitle=prov.summary())

Release

python -m build && twine upload dist/*

Metadata

Release files for horsegraph 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for horsegraph 0.1.1
File Size Uploaded
horsegraph-0.1.1.tar.gz 17.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for horsegraph 0.1.1
File Interpreter ABI Platform
horsegraph-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 35.2 kB

Release files / horsegraph-0.1.1.tar.gz

Download URL horsegraph-0.1.1.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
77dff692ae5e64fea44cad6db7eb3abbe73044494013416e6f5cb9b2866e6c5b
BLAKE2b-256 checksum
How to use checksums
de0ff61a0318cf55f191efcbe7e88b61ab88aa32ec0c73b3a117511d211c2877
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release files / horsegraph-0.1.1-py3-none-any.whl

Download URL horsegraph-0.1.1-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
17eaacec0c6ef6da8d009dda7c01f2f799f601156354af2b14d31deb9a214b1c
BLAKE2b-256 checksum
How to use checksums
a2895df532c17c795bc1c9c4cadb54bab4c9b2ad72a2d10e9cf8994b062b8db4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release history Release notifications | RSS feed

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page