Skip to content
Packages Examples Agents Blog Get started
Terminal window
oridecon new project my-app --template full -d ./workspace
cd ./workspace/my-app
ls src/my_app/

The full template includes application.yaml, app.py, modules structure, tests, and pyproject.toml.

Terminal window
oridecon new package my-feature -d ./extensions
cd ./extensions/oridecon-my-feature
uv sync
uv run pytest

Scaffolds oridecon-my-feature/ with pyproject.toml, src/oridecon/my_feature/, di/provider.py, and a unit test scaffold.

Terminal window
oridecon gen list

Generators are contributed by installed packages. Each entry shows the generator name and description.

Terminal window
oridecon gen model Product
oridecon gen service ProductService
oridecon gen repository ProductRepository
oridecon gen controller ProductController

Generated files are placed in the project’s src/ tree, following framework conventions.

Terminal window
oridecon db init # create initial migration
oridecon db migrate -m "add email field"
oridecon db upgrade # apply pending
oridecon db rollback # revert last
oridecon db status # check state
oridecon db list # show history

Requires oridecon-sql to be installed in the project.

Terminal window
oridecon inspect providers # list DI providers
oridecon inspect routes # show HTTP routes
oridecon inspect health # run health checks
oridecon inspect container # show container bindings
Terminal window
oridecon shell # REPL with app context
oridecon shell --ipython # use IPython if available
oridecon shell --no-app # plain Python REPL

The context-loaded shell provides app, container, config, db, cache, and events.

Terminal window
oridecon test # run pytest
oridecon lint # run ruff
oridecon project typecheck # run mypy
oridecon project run-all # all checks
  • Use --json flag on any command for machine-readable output
  • Generators create files relative to the project root; run from the project directory
  • Migration files are timestamped and stored in the project’s migrations directory
  • The dev server and run command auto-discover create_app(); use module:attr syntax to override