Chat DSL is a versioned experimental repository for a chat-oriented domain-specific language, its parser and executor, and a local Streamlit app for running DSL programs.
The active application lives in apps/streamlit/, shared runtime code lives in chatdsl_core/, and the active test suite lives in tests/.
Historical snapshots and historical version-specific reference material live under archive/.
This repository is not packaged yet. The active app runs from apps/streamlit/, the active tests run from tests/, and shared runtime code lives in chatdsl_core/.
Recommended local setup:
python -m venv .venv
source .venv/bin/activate
pip install streamlit pytestOptional environment variables for Gemini-backed execution:
export GEMINI_API_KEY=...
export GEMINI_MODEL=gemini-2.5-flash
export GEMINI_CHEAP_MODEL=gemini-3-flash-preview
export GEMINI_TIMEOUT=120GEMINI_API_KEY is only required when running live Gemini calls. The app can still be used in stub mode without it.
Run the active app:
streamlit run apps/streamlit/app.pyThe active app supports:
- DSL execution through the
v0.4parser and executor - local chat persistence
- versioned edits for DSL messages
- stub execution and Gemini-backed execution modes
Run the active test suite:
python -m pytest -q testsRun the previous stable line's tests when comparing behavior:
python -m pytest -q archive/v0.3/testsapps/streamlit/: active Streamlit appchatdsl_core/: active shared runtime codetests/: active test suitearchive/v0.4/: historical version-specific docs forv0.4docs/: project-level documentationarchive/: archived version snapshots and historical reference material
- Roadmap:
docs/roadmap.md - Architecture:
docs/architecture.md - Agent and contributor workflow:
AGENTS.md - GitHub Issues:
https://github.com/Ambrois/Chat-DSL/issues
Use GitHub Issues for substantial work. Repo-local notes are not the durable work queue.