Wrap any Django project in an Electron shell
Project description
desktop-django-starter
Wrap any Django project in an Electron shell using an AI coding agent.
Quick start
cd ~/projects/my-django-app
uvx desktop-django-starter init # save a default harness once
uvx desktop-django-starter wrap # preflight only
uvx desktop-django-starter wrap --run # preflight + invoke agent
Or install for repeated use:
uv tool install desktop-django-starter
dds init
dds wrap
dds wrap --run
dds wrap --run --agent codex
dds wrap --run --harness pi --model openai-codex/gpt-5.4
Commands
dds init
Interactive first-run setup for wrapper defaults. It detects installed
supported harnesses (claude, pi, codex), lets you pick one default
harness, optionally saves a freeform default model string, and writes
user-level config under ~/.config/dds/config.toml on Unix-like systems.
dds wrap
Run from inside a Django project directory. By default, runs preflight checks
and prints the agent command. Add --run to invoke the agent.
dds wrap --run resolves the harness in this order: explicit CLI flags, saved
config, then auto-detect when exactly one supported harness is installed. If no
config exists yet and stdin is a TTY, wrap --run launches the same setup flow
inline. Non-interactive runs never prompt; when the harness is ambiguous they
fail with a message that points to dds init or --harness.
When using the claude harness, --run streams concise progress lines while
Claude works. Older dds builds delegated to Claude's default text output,
which could look idle until the agent finished.
Options:
--run— invoke the agent after preflight passes--agent NAME,--harness NAME— agent harness to use:claude,pi,codex; overrides saved config or auto-detect--model NAME— model to pass to the selected agent; overrides the saved default model--force— bypass dirty-worktree and existing-electron/ checks--emit-prompt— print the resolved wrapping prompt to stdout
dds doctor
Check that prerequisites are installed, bundled assets are intact, and the
current wrapper config plus available harnesses are sufficient for wrap --run.
What happens after wrapping
The agent creates an electron/ directory and justfile targets in your project:
just desktop-dev # Electron + Django dev mode
just desktop-dev-smoke # headless boot + health check
npm --prefix electron test # node-side tests
Version
Every wrap is stamped with the dds version so you can reproduce results.
The package version tracks the starter repo release.
Maintainer release
Build and publish the PyPI wrapper package from the repo root:
just cli-publish
The cli-publish recipe runs cli-test and cli-build first. The PyPI wrapper
package is the cli/ subproject. Use just cli-build or just cli-publish
instead of the root just build recipe for uvx desktop-django-starter ...
releases.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file desktop_django_starter-0.1.6.tar.gz.
File metadata
- Download URL: desktop_django_starter-0.1.6.tar.gz
- Upload date:
- Size: 313.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27a696a7670db0fa45c69a34d6b7fce15ad3a5d9efd64211e4eaa2cac031321a
|
|
| MD5 |
cf5b9cdc7097b0e1c5522243c0815947
|
|
| BLAKE2b-256 |
14d9a01c9fe2d5d890e29dd40a4b8fa558ad2bd60c2f561cfa3e2a554916a32e
|
File details
Details for the file desktop_django_starter-0.1.6-py3-none-any.whl.
File metadata
- Download URL: desktop_django_starter-0.1.6-py3-none-any.whl
- Upload date:
- Size: 325.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f409d6b7e4ebfefbe1e8bcaa2ece354d760066c5c4f814c93fe700e0343711e
|
|
| MD5 |
cd55a89a85abdce7fe62ce9dbbe59c05
|
|
| BLAKE2b-256 |
8c90ebc948f3887d90e97b059edd8121037d470ff204a880db1143866951b4c1
|