Commands
The built-in slash commands, plus your own commands and skills for a project or for every project
Type / in the composer and a list appears. Commands either run entirely in the app, or they expand into a normal request the assistant answers.
Built-in commands
| Command | Effect |
|---|---|
/help | Lists every available command, your own ones included |
/clear | Starts a new conversation |
/model | Switches the model. Pass part of a name, or nothing to see the current one |
/effort | Sets the reasoning effort: low, medium or high |
/plan | Toggles plan mode, optionally with the task right away |
/compact | Summarises the conversation so far to free up context |
/init | Analyses the workspace and writes a dgpt.md |
/code-review | Reviews the uncommitted changes |
/model and Auto
/model with a search term switches to the matching model, and reports back if the term matches nothing or several. Without an argument it names the current one.
Auto is a choice like any other model, and it is the default. With Auto, the server picks a model per request based on what the request needs, so a one-line question does not go to the most expensive model available. Pick a model explicitly when you want a specific one for a specific reason, and switch back to Auto when you are done.
/plan
Plan mode reads only. Edits and commands are blocked at the tool level rather than discouraged in the prompt, so plan mode is a real gate and not a request.
/plan refactor the payment module sets the mode and hands over the task in one go.
When the plan is ready, the assistant writes it to .deutschlandgpt/plans/ and asks explicitly whether it should implement it. Approving that is what leaves plan mode, so it never happens as a side effect of your next message.
/code-review
Reviews what is uncommitted: it works out the changed files with Git, reads the diffs and reads as much of the affected files as it needs. It changes nothing.
The result is sorted by severity and grouped into correctness, security and maintainability, with a file:line reference per point. It is also written to .deutschlandgpt/reviews/ as Markdown, so you can read it after the conversation has moved on.
/compact
A long conversation eventually fills the model's context. /compact replaces the history so far with a summary and keeps working from there.
The transcript shows this as a dedicated card, not as a message from you, so it stays obvious later why the middle of the conversation is missing. It is refused while a response is still streaming and when there is nothing to compact yet.
Compaction also happens on its own when a request would otherwise not fit. /compact is for doing
it deliberately, before starting a big new step in an already long conversation.
Your own commands
A Markdown file in .deutschlandgpt/commands/ becomes a slash command named after the file. deploy-check.md becomes /deploy-check, and the body of the file is the prompt that gets sent.
---
description: Check whether the branch is ready to deploy
---
Check whether this branch is ready to deploy:
- Do the tests pass?
- Is anything left in the migrations that has not run?
- Are there any TODOs in the changed files?
Report it as a short checklist.
The description from the frontmatter is what shows up in the command list. Without it, the command still works, it just has no description.
Arguments: whatever you type after the command replaces $ARGUMENTS in the template. If the template does not contain $ARGUMENTS, your text is appended at the end. So /deploy-check ignore the E2E tests works either way.
For every project
The same thing in ~/.deutschlandgpt/commands/ is available in all your workspaces. If both hold a command of the same name, the project version wins, so a project can deliberately replace one of your personal commands.
Skills
A skill is a Markdown file in .deutschlandgpt/skills/ (or ~/.deutschlandgpt/skills/ for all projects) describing how something is done here: how a new API endpoint is put together in this codebase, how a release is cut, how the test data is generated.
Unlike a command, you do not invoke a skill. Only its name and description are given to the assistant, and it reads the full file itself when the description matches what it is doing. That way twenty skills cost almost nothing until one of them is actually relevant.
---
description: How a new API endpoint is added in this project
---
1. Route in `src/api/routes/`, registered in `index.ts`.
2. Schema in the same folder as `<name>.schema.ts`.
...
Write the description so it says when the skill applies, not what it contains. "How a new API endpoint is added" gets read at the right moment. "API notes" does not.
Same precedence as commands: project beats personal on a name collision.
MCP servers and integrations
External tools do not come through a slash command. Add them under Integrations (Cmd/Ctrl+Shift+E), where they become available in Chat, Code and Cowork at once:
- Your own MCP server
- A WebDAV or Nextcloud server
- The prebuilt integrations such as Confluence, Jira, SharePoint or GitHub
Actions of a connected service are approval-gated separately from file changes, and can be waved through with Auto-approve connections.