Code
A coding assistant that works in your project on your own device, with file access, a real terminal, Git and a live preview
DeutschlandGPT Code is a coding assistant that works directly in your project. It reads and changes files, runs commands in a real terminal, uses Git, and can show a running dev server in a preview. All of it on your machine, in the folders you shared with it.
Code and Cowork share the same engine and the same approval model. Code adds what a development workspace needs: terminal, Git, preview and project instructions.
Getting started
Share the project folder. A workspace may hold several folders, for example a project plus a neighbouring package it depends on.
Describe the task. The assistant explores the project itself, you do not have to name files upfront.
The shared folders of Code and Cowork are kept separate: a folder you shared with Cowork is not reachable from Code, and the other way round.
What it can do
| Area | Details |
|---|---|
| Read the project | Full-text search, name patterns, directory listings, files read in windows so a huge file does not have to be swallowed whole |
| Change code | Targeted edits, new files, moving, renaming, deleting |
| Run commands | Build, test, lint, Git, package managers, anything else in a real terminal |
| Long-running commands | A dev server or a watch task keeps running in the background, and its output can be read later or the process stopped |
| Git | Status, diff, staging, commits, branches, remotes, fetch, pull, push |
| See the result | A live preview of a running dev server, plus screenshots and the browser console of that page |
| Delegate research | Hand a question to a read-only sub-agent that searches on its own and returns only its answer |
| Documents | Everything Cowork can do with Office files and PDFs, since the two share the same toolset |
Permission modes
The mode sits in the composer and can be switched at any time, also with Cmd/Ctrl+Shift+M.
| Mode | Behaviour |
|---|---|
| Plan | Reads only, produces a plan. Changes and commands are blocked |
| Normal | Asks before changes, deletions and commands |
| Allow changes | File changes run without asking. Commands and external tools still ask |
| Auto | Everything runs without asking |
Plan mode is the safe way into an unfamiliar codebase: let it produce a plan first, read it, then switch modes and have it done. The assistant writes its plan to .deutschlandgpt/plans/ and then asks explicitly whether to implement it, so approving the plan is a deliberate step and not a side effect of your next message.
What Auto really means
Auto is the same assistant with the questions turned off. It writes, moves and deletes files, and it runs commands, without a separate confirmation each time.
Two things do not change:
- It cannot leave the shared folders. That boundary is enforced by the app, not by the mode, and widening it is a separate switch under Data storage.
- Critical commands always ask, even in Auto. A force push,
reset --hard,rm -rf, anything undersudo, piping a downloaded script into a shell, publishing a package: these produce an approval card with the reason, in every mode, and they are never offered an "always allow". A standing permission you granted earlier does not cover them either.
Auto fits a scratch branch you can throw away. On a branch you care about, Allow changes gives you nearly the same speed while every command still stops and asks.
Approvals
A command or file change appears as an approval card with the actual diff or the actual command line.
| Key | Action |
|---|---|
Cmd/Ctrl+Enter | Approve |
Cmd/Ctrl+Shift+Enter | Approve everything pending |
Esc | Decline |
"Always allow" is always narrow: it binds to one kind of action in one shared folder, never to everything. Removing the folder revokes those permissions.
Actions of connected services, so integrations and MCP servers, have their own gate on the server side, and can be approved automatically with Auto-approve connections independently of the file gate.
Talking to a running assistant
- Send while it works. Your message joins the running turn at the next step boundary, so "no, use the existing helper instead" arrives while the work is happening rather than after it. A pending approval or a slash command waits for the current step first.
- Several messages in a row are queued visibly and dispatched in order.
- Stop ends the turn. Work already done stays done.
- If a turn runs out of steps with work left, a card asks whether it should keep going, and continuing resumes the same turn with every step intact.
The task list
For a multi-step job the assistant keeps a visible list above the composer, one entry per step with its state. Switch it off under Chat settings if you would rather not see it.
Undoing a change
The Versions tab in the side panel holds saved earlier states of every file the assistant touched, plus a bin for deleted files. Restore a single entry, or roll back everything one request changed with "restore the state before this request".
This is independent of Git, so it also covers a file that was never committed.
More
Adding project folders, starting a new project, and the project brief in dgpt.md.
The built-in slash commands, plus your own commands and skills.
File tree, code editor, diffs, versions and the document editor.
The real shell, background processes and the Git panel.
Dev server, viewport sizes, picking an element, screenshots and the browser console.