Toolchain

CLI utilities, GUI editors, a network server, and admin tools — bundled with DevKit to work with DSM models, Databases, and Commit databases.

dsm_util.py

CLI

Command-line tool for validating DSM models, creating databases, and emitting language-specific packages (Python via create_python_package).

python3 tools/dsm_util.py check model.dsm
check Validate DSM syntax
create_commit_database Create commit database
create_database Create simple database
create_python_package Generate Python package
encode Convert DSM to JSON intermediate
decode Convert JSON intermediate to DSM
Read the manual

Database Editors

Two GUI editors targeting different backends: cdbe.py is the Commit Database Editor — a full-featured Qt Widgets tool for any CommitDatabase — and dbe.py is a standard CRUD inspector for the non-versioned Database backend. Both are PySide6 (Qt for Python) desktop applications.

Commit-based

cdbe.py

Commit Database Editor

Generic editor for any CommitDatabase — full-featured Qt Widgets desktop tool. Exposes the full mutation history (undo/redo, divergence, head reduction, sync) and embeds a Python editor.

python3 tools/cdbe.py project.cdb
  • Browse commit history (DAG visualization)
  • Inspect documents by attachment
  • View CommitCommands in selected commit
  • Undo/Redo stack visualization
  • Synchronization with remote server
  • Blob storage browser
  • Python code editor with syntax highlighting and script execution
cdbe - Documents view
Documents Browser
cdbe - DSM Definitions
Embedded DSM Definitions
cdbe - Commit history
Commit History (DAG)
cdbe - Python code editor
Python Editor
Plain CRUD

dbe.py

Database Editor

Standard CRUD inspector for the single-state Database backend (.vpr files). No commits, no history, no DAG — open, browse, view.

python3 tools/dbe.py project.vpr
  • Browse documents by attachment
  • Inspect binary blob content
  • View UUID, codec, definitions
  • Connect to remote Database server
dbe - Documents view
Documents Browser
dbe - DSM Definitions
Embedded DSM Definitions
Read the manual

Server & Administration

Tools for running CommitDatabase as a network service and performing administrative operations.

commit_database_server.py

RPC Server

Expose CommitDatabase over the network for multi-client synchronization.

python3 tools/commit_database_server.py project.cdb
--host Bind address (default: 0.0.0.0)
--port TCP port (default: 54321)
--socket-path Unix socket (alternative to TCP)

commit_admin.py

Administration CLI

Database administration: reset, sync, and reduce heads.

python3 tools/commit_admin.py --database project.cdb reset
reset Reset to initial commit
reduce_heads Reduce multiple heads
sync Sync with remote server
Read the manual

Export & Import

Move a database's contents through an open, human-readable JSON bundle — your data is never trapped in an opaque binary file. The round-trip is state-level: exporting a Commit database captures its state at one commit, and importing rebuilds a fresh database — not the commit history.

database_export.py

Database → JSON

Serialise a Database or CommitDatabase to a JSON bundle — definitions, one document file per attachment, and blobs. For backup, diff, and inspection.

python3 tools/database_export.py project.cdb --commit-id last
--commit-id Commit to export — required for a CommitDatabase (last / first / id)
--output Output directory (default: <name>.export)

database_import.py

JSON → Database

Rebuild a fresh Database or CommitDatabase from a bundle, preserving blob ids. A CommitDatabase target starts at a single import commit.

python3 tools/database_import.py project.export rebuilt.cdb
--as Target type: database / commit-database (default: match the bundle)
--force Overwrite the output file if it exists
Read the manual

Get the DevKit bundle

Tools ship inside the DevKit bundle (dsm_util.py, dbe.py, cdbe.py, commit_admin.py, kibo-*.jar). The dsviper runtime installs separately from PyPI.