Skip to main content

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.

Metadata

Release files for desktop-django-starter 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for desktop-django-starter 0.1.6
File Size Uploaded
desktop_django_starter-0.1.6.tar.gz 313.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for desktop-django-starter 0.1.6
File Interpreter ABI Platform
desktop_django_starter-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 638.6 kB

Release files / desktop_django_starter-0.1.6.tar.gz

Download URL desktop_django_starter-0.1.6.tar.gz
Size 313.5 kB
Tags Source
SHA-256 checksum
How to use checksums
27a696a7670db0fa45c69a34d6b7fce15ad3a5d9efd64211e4eaa2cac031321a
BLAKE2b-256 checksum
How to use checksums
14d9a01c9fe2d5d890e29dd40a4b8fa558ad2bd60c2f561cfa3e2a554916a32e
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / desktop_django_starter-0.1.6-py3-none-any.whl

Download URL desktop_django_starter-0.1.6-py3-none-any.whl
Size 325.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1f409d6b7e4ebfefbe1e8bcaa2ece354d760066c5c4f814c93fe700e0343711e
BLAKE2b-256 checksum
How to use checksums
8c90ebc948f3887d90e97b059edd8121037d470ff204a880db1143866951b4c1
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page