[PR #7264] feat: allow custom system prompts in global, project or custom directories #12326

Closed
opened 2026-02-16 18:17:14 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/7264

State: closed
Merged: No


Fixes #7101

This PR adds support for a priority overrule of the opencode bundled system prompts in global, project or custom directory (via Env Setting)

Why is it helpful?
In a reddit post, someone started creating very compact system-prompts to free up capacity in the context window. This patch allows using tailored system prompts instead of the bundled prompts.
I hope this will increase creative and productive evolution on the system prompts for opencode and make it even more awesome.

How does it works:
opencode (currently) uses the following system prompt files:

Modelname -> Filename
anthropic / claude -> anthropic.txt
gpt-5 -> codex.txt
gpt-, o1, o3 -> beast.txt
gemini- -> gemini.txt
Fallback, if nothing matches -> qwen.txt

With this PR, opencode codes will load the matching system prompt file in following order (highest priority to lowest priority):

  • Environment: $OPENCODE_PROMPTS_DIR (e.g. OPENCODE_PROMPTS_DIR=/home/coder/my-custom-prompts)
  • In the project-directory (e.g. : /home/coder/source/awesome-project/.opencode/prompt/.txt )
  • Global system prompts at ~/.config/opencode/prompt/<name.txt>
  • Opencode's bundled system prompts inside opencode deployment

Q&A:
Why not use AGENTS.md?

  • AGENTS.md will append to the bundled system prompt, not replace it. So it won't help building tailored system prompts for new or low-spec coding models.

Why are the prompts under the /prompt/ directory?

  • It follows the same directory structure as opencode's code to prevent confusing standards

How to start with a custom system prompt?

**Original Pull Request:** https://github.com/anomalyco/opencode/pull/7264 **State:** closed **Merged:** No --- Fixes #7101 This PR adds support for a priority overrule of the opencode bundled system prompts in global, project or custom directory (via Env Setting) **Why is it helpful?** In a reddit post, someone started creating very compact system-prompts to free up capacity in the context window. This patch allows using tailored system prompts instead of the bundled prompts. I hope this will increase creative and productive evolution on the system prompts for opencode and make it even more awesome. **How does it works:** opencode (currently) uses the following system prompt files: Modelname -> Filename anthropic / claude -> anthropic.txt gpt-5 -> codex.txt gpt-, o1, o3 -> beast.txt gemini- -> gemini.txt Fallback, if nothing matches -> qwen.txt With this PR, opencode codes will load the matching system prompt file in following order (highest priority to lowest priority): - Environment: $OPENCODE_PROMPTS_DIR (e.g. OPENCODE_PROMPTS_DIR=/home/coder/my-custom-prompts) - In the project-directory (e.g. : /home/coder/source/awesome-project/.opencode/prompt/<name>.txt ) - Global system prompts at ~/.config/opencode/prompt/<name.txt> - Opencode's bundled system prompts inside opencode deployment **Q&A:** Why not use AGENTS.md? - AGENTS.md will append to the bundled system prompt, not replace it. So it won't help building tailored system prompts for new or low-spec coding models. Why are the prompts under the /prompt/ directory? - It follows the same directory structure as opencode's code to prevent confusing standards How to start with a custom system prompt? - Start by using a copy of the original prompts from opencode (see: https://github.com/anomalyco/opencode/tree/dev/packages/opencode/src/session/prompt ) and put them into one of the mentioned directories. Look into https://github.com/anomalyco/opencode/blob/dev/packages/opencode/src/session/system.ts to check the current model-matching algorithm.
yindo added the pull-request label 2026-02-16 18:17:14 -05:00
yindo closed this issue 2026-02-16 18:17:14 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#12326