Skip to main content

Codebase observation graph and mapping tools

Project description

eforge

Codebase observation graph for developers. Map your codebase. Track concepts. Find relationships.

Install

pip install eforge

That installs three packages only: eforge, click, and PyYAML.

Install What you get
pip install eforge Standalone CLI: init, task, node, schema, error
Monorepo checkout Adds runtime commands: orient, search, declare, inspect, … via ActionRegistry
pip install eforge[compiler] Reserved for a future full graph runtime on PyPI (not published yet)

Project bootstrap

Two storage domains — do not conflate them:

Domain Directory Created by
eforge (observation) .eforge/schemas/, .eforge/observations/ eforge init
Declaration (manifest graph) .forge/manifest.yaml, .forge/tasks/ eforge declare, eforge console, or legacy forge init
cd your-project
eforge init                    # .eforge/ only
eforge node add "Auth" -y      # observation graph
eforge task add --title "..." -y   # creates .forge/tasks/ on first use

# With compiler runtime (monorepo):
eforge declare -y                # bootstraps .forge/ if needed
eforge console

Legacy repos may still have observations under .eforge/observations/; new projects use that path. Older .forge/observations/ layouts are read as fallback.

No setup needed

After eforge init, add nodes anytime:

eforge node add "AuthSystem" --kind concept/feature -y
eforge node add "auth.py" --kind core/file \
  --file src/auth.py -y
eforge node link "AuthSystem" "auth.py" \
  --rel housed-in \
  --note "core auth logic" -y
eforge node show "AuthSystem"

Commands

eforge node     add, show, list, find, link,
                note, tag, mark, edit, inspect
eforge schema   list, show, create, edit,
                validate, copy, restore
eforge error    lookup (<CODE>), --list, --search, --stats

Your own schemas

eforge ships with built-in schemas for common node types. Add project-specific schemas without touching forge:

eforge schema create game/canvas

This creates .eforge/schemas/domain/game/canvas.yaml. Your schema is immediately available:

eforge node add "PixelCanvas" --kind game/canvas
# SchemaPrompt uses YOUR schema properties

Schema search order:

  1. .eforge/schemas/ (your project)
  2. forge built-ins

Built-in kinds: concept/feature, core/file, ui/screen, ui/variant, ui/component, architecture/session, architecture/boundary, data/model, data/table, data/rpc, code/class, code/function, code/module

Node types

concept/feature planned features, systems, capabilities
core/file       source files

Relationship types

housed-in       concept → file
relates-to      concept → concept
depends-on      A needs B
implements      code implements concept
raises          code raises error

Storage

.eforge/schemas/              project type schemas
.eforge/observations/
  nodes/                      one yaml per node
  .cache/                     SQLite index (auto-rebuilt)
.forge/manifest.yaml          declaration graph (not created by eforge init)
.forge/tasks/                 work items (created on first task add)

No AI required

Works without any AI assistant. Map your codebase manually, one node at a time.

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

eforge-1.0.7.tar.gz (12.4 MB view details)

Uploaded Source

Built Distribution

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

eforge-1.0.7-py3-none-any.whl (96.8 kB view details)

Uploaded Python 3

File details

Details for the file eforge-1.0.7.tar.gz.

File metadata

  • Download URL: eforge-1.0.7.tar.gz
  • Upload date:
  • Size: 12.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for eforge-1.0.7.tar.gz
Algorithm Hash digest
SHA256 53ed491092f3255599703ec6f902f03474c73f3a1dc4e0e6e169ec3a0db39e85
MD5 e7f9eeda9214c3f07021f8ee23bf25da
BLAKE2b-256 35e0dcb172e3460706c2988fffa998c9acfb4de12dcd2d8950176d42542344b0

See more details on using hashes here.

File details

Details for the file eforge-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: eforge-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 96.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for eforge-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 a1faafff153d1ce5501e339b19777ce5c3e580ce2225da4ce8112c39b28899b3
MD5 bfcafc0345c341500a1d87cb0265119d
BLAKE2b-256 9b26213e6b21b03fb663ba21fc2ac3c5f3fc5930eaec3583d2b306520ee9c214

See more details on using hashes here.

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