DevWorkspace Pro

One workspace for your Python projects

Manage Django, FastAPI and Flask projects in one desktop app: venv setup, Makefile targets, terminal tabs that persist, GitHub Actions and AI agents.

Updated 3 min read
On this page
  1. Core features every project gets
  2. Extras for Python
  3. Your first day with a Python project
  4. What Python developers get
  5. Works with your existing setup

A typical Python day means a dev server in one terminal, tests in another, and a Makefile you half remember. DevWorkspace Pro puts all of that on one project page. It spots Python from pyproject.toml, requirements.txt, Pipfile or manage.py, sets up a virtual environment for new projects, and keeps your run command one click away on the Run card.

Core features every project gets

Every Python project gets the same core tools as any other folder:

  • Files editor, ⌘+P and project search
  • Git Changes, GitHub issues and Actions, and Send to AI
  • AI sessions with resume, and terminal tabs that keep their output
  • Focus Pad, the ⌘+K switcher, uptime monitoring and Remote SSH
Projects Import
data-jobs ~/code/data-jobs Python
acme-shop ~/code/acme-shop Laravel
acme-web ~/code/acme-shop/web Node.js
billing-api ~/code/billing-api Go
Shop.Api ~/code/shop-api .NET
agency-blog ~/sites/agency-blog WordPress
[Projects] Python projects get their own badge, next to every other project.

Extras for Python

On top of the core, Python projects also get:

  • A Python badge and a create flow that makes a virtual environment
  • A Run card with your run command and your Makefile targets
  • A native Python runtime (in .venv), plus Docker Compose services when the folder has compose.yaml

Your first day with a Python project

Create or import

Click New Project, select Python, and pick Python again in step 2. The app runs python3 -m venv .venv in the folder. Unlike most stacks, the folder can already have files, so you can point it at an existing checkout.

The run command field is open. Type .venv/bin/uvicorn app.main:app --reload for FastAPI, .venv/bin/python manage.py runserver for Django, or anything else you use. For a project you already have, drag the folder onto the window.

Run it

The Run card on the Overview tab shows your run command with a Run button. If there is a Makefile, each top-level target becomes a button too, and a ## comment after the target becomes its description. Commands run in a headless terminal and show in the status bar while they run.

Hand a task to an AI agent

Press ⌘+J and describe the task, for example "Add a Pydantic model and a POST endpoint for orders, with pytest tests". Claude Code, Codex or OpenCode starts in the project folder. Quit the app mid-task and the status bar offers to resume the session after the restart.

Ship through GitHub

Commit from Git › Changes. Your pre-commit hooks, such as Ruff or Black, run exactly as they do in a terminal. If a hook blocks the commit, its output shows under the message box and your message stays put.

Push from the terminal, then watch the test workflow in Git › Actions. When pytest fails, click Send failure to AI.

What Python developers get

Terminal tabs with history

Keep one terminal for the dev server, one for a shell and one for tests. After a restart, each terminal shows its saved output and opens a new shell in the last folder you used. Saved output older than 60 days is not restored.

Your Makefile as buttons

Most Python projects keep their task list in a Makefile. The Run card turns it into buttons: make test, make lint, make migrate.

Docker Compose

Running PostgreSQL, Redis or Celery workers from compose.yaml? The Services card starts, stops and restarts each service and streams its logs.

Notes and uptime

The Scratchpad tab is a per-project notes pad for commands, connection strings and snippets. In Health › Uptime, add the public URL of your API: our servers send a GET request at the interval you set and email you when it fails.

Works with your existing setup

The app runs the python3 on your computer and does not replace your tools. Keep using pip, Poetry, uv or pipenv from the terminal tab, and the app never touches pyproject.toml. IDE opens the project in PyCharm or VS Code, and Remote SSH opens a shell on your Linux server from the project page.

Related stacks: /for/go and /for/nodejs. Docs: Projects, Terminal, Session Resume, GitHub Integration.

FAQ

Frequently asked questions

How does the app detect a Python project?

It looks for pyproject.toml, requirements.txt, Pipfile or manage.py in the folder, or one level down. The project then shows a Python badge.

What does New Project do for Python?

It creates a virtual environment with python3 -m venv .venv. The run command is .venv/bin/python main.py, and the field is open so you can type your own, for example a uvicorn or manage.py runserver command. The folder can already have files.

Does the security scan check Python packages?

No. The scan reads Composer, npm, pnpm, Yarn, Bun and NuGet data. If your Python project also has a JavaScript frontend with a lockfile, that lockfile is checked.

Can I run a Django project in DDEV?

If the folder already has .ddev/config.yaml, Import adds it as a DDEV project with start and stop controls. New Project offers the Python and Other run methods for Python.

Related

All stacks

DevWorkspace Pro

One workspace for every project

Files, Git, GitHub, AI agents, the terminal and your runtimes in one desktop app. Works with every project folder.

macOS Windows Linux