Magic Prompts
Magic prompts are the prompts that Splitkick sends for you: investigations, commit messages, pull request texts, code reviews, session names, and the system prompts that go with every message. In Settings → Magic Prompts you can change the text of each prompt and the model that runs it.
The pane has a list of prompts in four groups (Investigation, Git Operations, Session, System Prompts). On the right are the settings of the selected prompt, the variables it knows, and the text.
Magic prompts are the same for all projects. There is no project override. The only project setting that has an effect is the project's Default Backend.
The fields of a prompt
Each prompt has some of these fields.
Prompt text
Default: the built-in text of your Splitkick version
What it does: the text that Splitkick sends. It saves while you type. The chips above the text show the variables, such as {diff}, that Splitkick fills in before it sends the prompt. When your text is the same as the default, Splitkick keeps no copy, so you get new defaults with updates.
An empty text does not turn the prompt off: Splitkick then uses the default. The only exception is Resolve Conflicts.
Why change it: add your own rules, for example a commit message format or the language of PR texts.
Custom badge and Reset
A prompt with your own text shows Custom. It does not get new defaults from updates until you click Reset. Reset brings back only the text. Backend, model and the other fields stay as they are.
Backend
Default: follows the default backend
What it does: the CLI that runs the prompt. Without a backend of its own, a prompt uses the project's Default Backend, then the app's Default backend. The field shows the app default, not the project default. The list shows only installed CLIs.
Two places select the backend from the model and not from this field: the automatic investigation when you make a worktree from an issue, PR or alert, and Investigate in the Workflow Runs dialog.
Model
What it does: the model that runs the prompt. When you change the model, the reasoning level goes to the default of that model.
Why change it: use a cheap, fast model for prompts that run often (Commit Message, Session Naming, Context Summary with auto-save). Use a strong model for investigations and reviews.
Provider
Default: Anthropic
What it does: shown only when the backend is Claude and you have a custom provider. The prompt then runs through that provider. Anthropic here means Anthropic, not the default provider of the app.
Reasoning
Default: the default of the model
What it does: the thinking or effort level for this prompt. "Not supported" when the model has no levels.
Cost: a higher level uses more tokens and takes longer.
Mode
What it does: shown only for prompts that start a chat. Plan: the agent investigates, writes a plan and waits for your approval. Yolo: the agent acts without approvals. In Yolo, investigations get an extra instruction to fix the problem, not only to propose a plan.
Cost: Yolo edits files and runs commands without asking you.
Apply preset
A menu at the top of the pane. A preset sets the backend, model and reasoning of all prompts at once, for example Claude Defaults, Codex Defaults or GPT 5.6 Luna Fast. It does not change the prompt texts. The Codex presets give Commit Message a small fast model with low reasoning. Presets for CLIs that are not installed are disabled.
Investigation
All investigation prompts use Opus 5.5 by default. Each one starts a full agent turn, so they are the largest single calls in this pane.
When you update from an older version, each prompt that still uses the old default Opus 4.8 (1M) changes to Opus 5.5 one time. Prompts with another model keep it.
Investigate Issue
Default: Opus 5.5, mode Plan
When it runs: ⌘M → Investigate → Issue, when a GitHub issue is loaded in the session. Also when you make a worktree from an issue (New Worktree dialog, GitHub Dashboard → Investigate), and through the MCP server. Mr. Robot uses it too, always in Plan mode.
Variables: {issueRefs} (for example #123, #456), {issueWord} ("issue" or "issues").
Investigate PR
Default: Opus 5.5, mode Plan
When it runs: ⌘M → Investigate → PR, when a pull request is loaded. Also when you make a worktree from a pull request.
Variables: {prRefs}, {prWord}.
Investigate Workflow Run
Default: Opus 5.5, mode Yolo
When it runs: Investigate on a failed run in the Workflow Runs dialog (open it from the CI status in the chat toolbar or the failed-runs badge). Splitkick makes a new session in the worktree of the run's branch. The default text tells the agent to read the failed log with gh run view --log-failed.
Variables: {workflowName}, {runUrl}, {runId}, {branch}, {displayTitle}.
Why change it: set the mode to Plan when you want to see the fix before the agent makes it.
Investigate Dependabot Alert
Default: Opus 5.5, mode Plan
When it runs: when you make a worktree from a Dependabot alert (New Worktree dialog or GitHub Dashboard).
Variables: {alertRefs} (for example #42 lodash (critical)), {alertWord}.
Investigate Security Advisory
Default: Opus 5.5, mode Plan
When it runs: ⌘M → Investigate → Advisory, and when you make a worktree from a repository security advisory.
Variables: {advisoryRefs}, {advisoryWord}.
Investigate Linear Issue
Default: Opus 5.5, mode Plan
When it runs: when you make a worktree from a Linear issue. It needs a Linear key in Integrations.
Variables: {linearRefs} (for example ENG-123), {linearWord}, {linearContext} (the full text of the issues). The issue text goes to the AI provider inside the prompt.
Investigate Sentry Issue
Default: Opus 5.5, mode Plan
When it runs: when you make a worktree from a Sentry issue, and from ⌘M → Investigate → Issue when only Sentry data is loaded.
Variables: {sentryRefs}, {sentryWord}, {sentryContext} (event details and stack traces). Stack traces can contain user data, and they go to the AI provider.
Git Operations
Smoke Test
Default: Opus 5.5, mode Yolo
When it runs: ⌘M → Test → Smoke Test. Splitkick makes a new session in the worktree. The default text tells the agent to use the running Run environment, test the change through every interface, clean up, and give a verdict (passed, partially passed, failed).
Variables: {worktree_id}.
Cost: a long agent run that can start servers and browsers, without approvals.
Code Review
Default: one reviewer, Opus 5.5, fix mode Plan
When it runs: ⌘M → Pull Request → Review. See Review, commit, merge.
What is different: in place of one backend and model, Code Review has rows Review 1 to Review 5. Each row has its own backend, model, reasoning and mode. Add review adds a row. The reviewers run one after the other, and their results show in one Code Review session. The mode of a row applies when you send its findings to the chat: Splitkick then makes a new session with that row's backend and model.
Variables: {branch_info}, {commits}, {diff}, {uncommitted_section}. Uncommitted changes are cut at 50,000 characters.
Why change it: add a second reviewer with a model from another vendor for a second view.
Cost: one model call per row. Five Opus reviewers cost five times as much as one.
Review Comments
Default: Opus 5.5, mode Plan
When it runs: ⌘M → Pull Request → PR Comments, in a worktree with a pull request. You select the inline review comments, then Splitkick sends one prompt for all of them or one per comment.
Variables: {prNumber}, {reviewComments} (files, code and comment text).
Commit Message
Default: Sonnet
When it runs: ⌘M → Commit → Commit or Commit & Push, and the commit button in the diff view. Splitkick stages the selected files (or all changes when you selected none), asks the model for a message and commits at once. You do not see the message first.
Variables: {diff_stat}, {status}, {diff}, {recent_commits} (the last 5 messages, for the style). The diff is cut to 50 lines per file and 15,000 characters.
Why change it: add your commit rules, for example Conventional Commits or an issue reference.
Cost: runs on every commit, so a cheap, fast model is a good choice. The diff goes to the AI provider.
PR Description
Default: Sonnet
When it runs: ⌘M → Pull Request → Create. Splitkick commits open changes, pushes, makes the title and text, adds lines such as Fixes #12 from the loaded issues, and opens the pull request. If a pull request already exists, it makes no AI call.
Generate PR Description (⌘M → Pull Request) does not use this prompt: it starts a Yolo chat with a built-in instruction, and the agent updates the pull request itself.
Variables: {current_branch}, {target_branch}, {commit_count}, {context}, {related_pull_requests}, {commits}, {diff}.
Resolve Conflicts
Default: Opus 5.5, mode Yolo
When it runs: ⌘M → Branch → Resolve Conflicts, and for conflicts in a pull request. Splitkick merges the base branch. When there are conflicts, it makes a new session with the conflicting files and the conflict diff, and adds your text at the end.
What is different: this prompt has no variables, and it is only added at the end. An empty text adds nothing.
Release Notes
Default: Sonnet, always Yolo
When it runs: ⌘M → Release → Generate Release Notes. You select the release to start from. Splitkick makes a session in the base session of the project. The agent reads git and GitHub itself and answers with Markdown and a link to make the release on GitHub. It does not make the release.
What is different: with the default text, the dialog uses its own built-in prompt, not the text you see here. With your own text, Splitkick fills {tag} and {previous_release_name}, and tells the agent to collect the commits and pull requests itself.
Session
Context Summary
Default: Opus 5.5
When it runs: ⌘M → Context → Save Context, when you make a saved context from another session in the Load Context dialog, and after every finished turn when Auto-save context is on.
What it does: sends the whole conversation (each message cut at 5,000 characters) and writes the summary to a Markdown file. One file per session: later saves overwrite it.
Variables: {project_name}, {date}, {conversation}.
Cost: the whole conversation goes to the model each time. With auto-save on, this is the most expensive default in this pane. Select a cheaper model when you use auto-save.
Session Naming
Default: Sonnet
When it runs: with the first message of a session when Session names is on, and with Regenerate Session Title in the command palette. In a new worktree, the same call also makes the branch name when Branch names is on.
Variables: {message}.
Cost: one small call per new session. A cheap, fast model is enough.
System Prompts
These prompts have only the text and Reset. They go with chat messages, not as their own call.
Parallel Execution
When it runs: added to the system prompt of every chat message while Parallel execution prompting is on (default: on). It tells the agent to plan for subagents and to start independent subagents at the same time.
Cost: a few hundred tokens per message. More subagents can use more tokens in total.
Global System Prompt
When it runs: added to the system prompt of every chat message, for all backends, like a CLAUDE.md for all CLIs.
Default: a long Splitkick prompt. It asks for Simplified Technical English, and has rules for planning, checking the docs, subagents, testing, the search for related GitHub issues, Splitkick worktrees and Run environments.
What it does: the order in the system prompt is: AI Language, this prompt, the mode, Parallel Execution, then the project's Custom System Prompt. The project prompt is added, it does not replace this one. For projects with the Non-coding preset, Splitkick removes the section about GitHub issue search. While the text is the default, Codex sessions get their own Codex default.
Why change it: put in your own rules for all projects. Remove rules that you do not want, for example the issue search at the end of each task.
Cost: sent with every message: several thousand characters of input each time.
Provider Switch Handoff
When it runs: when you send a message after you changed the backend (or the Claude provider) of a session. The new backend starts a new session, and Splitkick puts this hidden prompt in front of your message, with the earlier conversation. You do not see it in the chat.
Variables: {previous_backend}, {current_backend}, {history} (the last 40 runs, at most 60,000 characters).
Cost: one large input on the first message after the switch.