On this page
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
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
Makefiletargets - A native Python runtime (in
.venv), plus Docker Compose services when the folder hascompose.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.