Skip to main content

Desktop-first Enterprise Capability Model studio with Git-managed JSONL storage.

Project description

ECM Studio

PyPI Python Publish License: MIT

ECM Studio is a Windows-first desktop application for managing an Enterprise Capability Model as local, Git-managed JSONL files. It gives architects and capability owners a focused workspace for editing capability trees, reviewing change history, publishing model snapshots, and exporting portable artifacts without putting the authoritative model in a database.

ECM Studio screenshot

Highlights

  • Desktop UI built with React, Dockview, Fluent UI, and pywebview.
  • Durable model storage in readable JSONL files under ecm/.
  • Git-native workflow for checkpoints, scenarios, merges, restore, pull, and push.
  • SQLite projection rebuilt locally for navigation and search speed.
  • Capability map view with SVG and HTML export.
  • Model import/export for JSONL, CSV, and bundled JSON.
  • Release workflow for tagged ECM model exports and GitHub release publication.
  • Light/dark theme support with native Windows chrome integration.

Install

ECM Studio requires Python 3.13 or newer. Install it from PyPI:

pip install ecm-studio

On Windows, if pip points at a different Python installation, use the Python launcher instead:

py -m pip install ecm-studio

With uv, install ECM Studio as a command-line tool:

uv tool install ecm-studio

Or install it into the current uv-managed environment:

uv pip install ecm-studio

Start the desktop app:

ecms

Open a workspace directly:

ecms C:\path\to\capability-model-repo

Check the installed package version:

ecms --version

Workspace Model

An ECM Studio workspace is a normal Git repository. The application stores the authoritative model in ecm/*.jsonl files and keeps local runtime state in .ecm-studio/, which should stay ignored by Git.

The SQLite database is only a local projection. It can be rebuilt from JSONL at any time and is not the source of truth.

Development

Install Python and frontend dependencies:

py -m pip install -e .[dev]
npm install --prefix ui

Run the Vite dev server and launch the desktop shell against it:

npm run dev --prefix ui
py -m ecm_studio --dev-ui http://localhost:5173

Build the frontend assets:

npm run build --prefix ui

Run checks:

ruff check src tests scripts
pytest -q
npm test --prefix ui
npm run typecheck --prefix ui

Packaging And Releases

The Python package uses Hatchling and reads its version from src/ecm_studio/__init__.py.

Cut a release from a clean working tree:

python scripts/release.py 0.1.1
git push origin master v0.1.1

The publish.yml workflow builds the React UI, stages it into the wheel, checks the distribution with Twine, verifies packaged UI assets, and publishes tagged v* releases to PyPI through trusted publishing.

Open the next development cycle after a release:

python scripts/release.py --post-release 0.1.2.dev0

License

ECM Studio is released under the MIT License.

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

ecm_studio-0.3.2.tar.gz (361.6 kB view details)

Uploaded Source

Built Distribution

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

ecm_studio-0.3.2-py3-none-any.whl (521.6 kB view details)

Uploaded Python 3

File details

Details for the file ecm_studio-0.3.2.tar.gz.

File metadata

  • Download URL: ecm_studio-0.3.2.tar.gz
  • Upload date:
  • Size: 361.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ecm_studio-0.3.2.tar.gz
Algorithm Hash digest
SHA256 f8d0b2bb78486784d21c30d68b36684dff2b1ac51eff356bf739bf478567c307
MD5 8d0010f39e1ad3d82a9955c42d441940
BLAKE2b-256 4a6ce38d3eec9433307ec057921def68e8af5d307438629273f643415f5e469e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecm_studio-0.3.2.tar.gz:

Publisher: publish.yml on ThomasRohde/ecm-studio

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

File details

Details for the file ecm_studio-0.3.2-py3-none-any.whl.

File metadata

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

File hashes

Hashes for ecm_studio-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 791c677fdc80acce35dd07ff1749358d08fc3550193cb28339c288a97e4ee45a
MD5 4b3362e75bfb7c3b3aea878433ac5f5e
BLAKE2b-256 4876838dd1482ed91e5564668bd819d55e58eca50e784febbddccf6a31547edc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ecm_studio-0.3.2-py3-none-any.whl:

Publisher: publish.yml on ThomasRohde/ecm-studio

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