The dyslexia-first repository map. Version control for dyslexics.
Spoken “iTree.” Ay is the pirate Aye — the long-I sound. The spelling is the thesis: a coined mark that is not Apple’s i- and not the forestry i-Tree tool.
This release is 0.8. The face is one three-column window. Info from main sits unzipped — not collapsed, not hidden in a suite.
python server/aytree_server.py
# open http://localhost:8000/
Windows: double-click AyTree.bat.
GitHub: Zychs/AyTree · tag v0.8.0.
A local map of a repository you can actually look at.
- Structure first. Presence and shape carry the signal.
- Not a color-only legend. Not a wall of unified-diff.
- Offline first. GitHub is a mirror. The user path works unplugged.
- AyTree is AyTree. It is not the Artifact Scanner, not Sesefus, not a store.
Intuitree and dyslexitree remain internal / historical names. They are not this product.
Default / is index.html — three full-height columns.
- Aye — name, thesis, how to run, what this is not.
- On main, unzipped — every live door, with honest WIRED / PARTIAL / STUB.
- Marketplace road — the shop does not exist yet. The road does.
Same window. No zipper. No companion rail. Narrow screens stack the columns.
| Path | What you get | Status |
|---|---|---|
/ |
Three-column 0.8 face | WIRED |
/tree and /legacy |
File tree + status + notes | WIRED (day tool) |
/map |
Radial onion + directory | WIRED |
/experimental |
Four canvas lenses | PARTIAL |
/radial |
Onion-only page | WIRED |
npm test runs the unit file (node --test).
From the repo root:
python server/aytree_server.py
npm testAyTree.bat starts the server minimized and opens /.
If port 8000 is busy, the server walks 8000–8019.
Scan root defaults to the parent of this repo (sibling projects). Notes live in .aytree_notes.json at the repo root.
Native AyTree.exe is still a plan: docs/ONE-CLICK-LAUNCH.md.
Use these words. Do not upgrade them in prose.
WIRED
- Tree tool: expand, status chips, autosaved notes, git branch readout.
- Map: one
RepoSnapshot, radial re-root, synced directory pane. - Server:
GET /api/tree, notes GET/POST, branch list, safe folder/branch create. - 0.8 face: three-column info window.
GET /api/version→{ "name": "aytree", "version": "0.8.0" }.
PARTIAL
- Experimental shell (
shell.html): spatial map, git DAG, onion, weave overlay. - Python-scan adapter exists for the map; large-repo worker is not the default path.
STUB (spec only — do not demo as shipped)
- Split-view sandbox with commit / omit gate.
- Relate mode. Habit / staged-fork mode.
- Scope overlays and derivation-color lanes.
- pywebview / PyInstaller appliance.
Specs live under docs/specs/. Versioning law: docs/VERSIONING.md.
index.html 0.8 three-column window (default /)
AyTree.bat Windows double-click → this window
map.html radial + directory
shell.html experimental lenses
radial-onion.html onion-only
legacy/index_tree.html tree + status + notes
server/aytree_server.py static + APIs
src/ model · compositor · ingest · lenses
docs/ architecture, catalog, launch, encoding
tests/ node:test
This is a roadmap, not a shop. 0.8 does not build a store.
The cut (already spoken, not invented here):
- A substrate is one host you live in. Window. Install. Update. Look.
- A suite is a family of small apps that may live there. Each keeps one job.
- A marketplace is a face where a person finds a small app and it lands in that substrate.
- It is solo. You publish. Off the Play Store on purpose.
- If it needs a growth loop to exist, it is the wrong marketplace.
AyTree’s place on that road:
- AyTree can be pointed at. One window. Three columns. Versioned.
- A stranger can read what it is without opening the scanner.
- Listing copy can be taken from column 1 + this README. No second brochure.
- Finish one-click so a non-terminal person gets the same window.
- Rungs already written: bat (this release) → PWA → pywebview → optional exe.
- Health/version API is in. Hidden-console / already-running attach still to do.
- Do not wait for a store to make the window honest.
- AyTree may appear as one listing: “dyslexia-first repository map.”
- The listing opens AyTree, not a suite shell and not the scanner.
- Shared prerequisites are allowed (Python, HTML, a webview). Shared soul is not.
- Sesefus may sit next door as a sibling. It is not an AyTree module.
- The marketplace talks to the substrate. AyTree does not become the marketplace.
- Play Store review, ads, team growth loops.
- Scanner-as-host. Dumping AyTree lenses into
board.html. - “While we are here” suite glue.
- Claiming sandbox / Relate / habit modes are shipped.
- A remote as a load-bearing ingest path (already tossed; stays tossed).
The marketplace is for small, constrained, deliberate apps. AyTree is one job: see a repository without the text becoming the attrition. That is listable. It is not the chassis. It is not the shop. It is not every other product in the house.
When the substrate is real, this README is the listing brief. Until then, 0.8 is the product.
docs/ARCHITECTURE.md— lenses over one snapshotdocs/VERSIONING.md— what a version is; commit / omitdocs/ONE-CLICK-LAUNCH.md— double-click ladderdocs/dyslexia-encoding.md— no size/storage encoding; no color-only statedocs/BACKBONE-TODO.md— backbone and nav still oweddocs/CATALOG.md— harvest map from the old canvases
The 2026-07-08 merge brought intuitree work into this tree. legacy/ is a path name, not a deprecation. The tree tool is still the day-to-day inside-one-root editor.
Canvas prototypes that smeared (old single-file weave) were culled. Provenance: docs/HARVEST.md and legacy/harvest/.
Public product repo: https://github.com/Zychs/AyTree.
Checkout for this 0.8 line: the Windows tree you launched from. WSL ~/aytree notes in older docs are historical. Do not edit a second stale clone and call it shipping.