Skip to main content

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

desktop_django_starter-0.1.6.tar.gz (313.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

desktop_django_starter-0.1.6-py3-none-any.whl (325.1 kB view details)

Uploaded Python 3

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

Hashes for desktop_django_starter-0.1.6.tar.gz
Algorithm Hash digest
SHA256 27a696a7670db0fa45c69a34d6b7fce15ad3a5d9efd64211e4eaa2cac031321a
MD5 cf5b9cdc7097b0e1c5522243c0815947
BLAKE2b-256 14d9a01c9fe2d5d890e29dd40a4b8fa558ad2bd60c2f561cfa3e2a554916a32e

See more details on using hashes here.

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

Hashes for desktop_django_starter-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 1f409d6b7e4ebfefbe1e8bcaa2ece354d760066c5c4f814c93fe700e0343711e
MD5 cd55a89a85abdce7fe62ce9dbbe59c05
BLAKE2b-256 8c90ebc948f3887d90e97b059edd8121037d470ff204a880db1143866951b4c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page