Skip to main content
Configuration and security

Output Styles

Adjust the tone, verbosity, and structure of responses; styles only stack instructions on top of the system prompt and do not change Qoder's core identity or safety constraints

Output styles adjust the tone, verbosity, and organization of Qoder CLI CN's responses. For example, you might want responses to be more concise, more instructional, or follow a particular structure. By selecting or customizing an output style, you can make Qoder's expression match personal or team habits without restating it in every conversation. Output styles affect only "how things are expressed" — they do not change Qoder's core identity or safety constraints. A style can only stack additional instructions on top of the system prompt; it cannot replace or bypass the built-in behavioral guidelines.

How to set it

The output style is specified with the outputStyle setting (a top-level key), whose value is the style name:
{
  "outputStyle": "concise"
}
Writing it under general.outputStyle is also accepted; when both are set, the top-level key wins. After changing outputStyle, Qoder CLI CN must be restarted for it to take effect. To use a style temporarily, specify it at startup with the --output-style flag:
qodercn --output-style concise
The flag applies to the current session only, takes precedence over the setting, and needs no restart. For all flags, see CLI Commands and Flags. If the setting is unset, or set to the default style, Qoder uses its built-in default expression without stacking any style.

Style sources and precedence

Output styles can come from multiple sources. When styles with the same name appear in multiple sources, they merge in this precedence, with later overriding earlier:
  1. Built-in styles: preset styles shipped with Qoder CLI CN.
  2. Plugin-provided styles: styles declared by enabled plugins.
  3. User-level styles: styles from the user-level configuration.
  4. Project-level styles: styles from the project-level configuration.
That is, a project-level style with the same name overrides the user-level one, and user-level overrides plugin and built-in styles. In addition, some plugins can declare a "forced style." When a forced style exists, it takes effect over the style specified by outputStyle; if multiple forced styles exist, the first one takes effect and a notice is recorded.

Custom output styles

Beyond built-in and plugin-provided styles, you can define your own, solidifying frequently used expression preferences for reuse.

How to define

A custom style is a Markdown file (.md) placed in a designated directory, one style per file:
  • User level: ~/.qoder-cn/output-styles/, effective for all projects.
  • Project level: <project>/.qoder/output-styles/, effective for the current project only.
The file consists of optional YAML frontmatter and a body — the body is the style instruction stacked onto the system prompt:
---
name: concise-en
description: A concise reply style
---

Keep replies short; state the conclusion first, then the reasoning.
Avoid repeating information the user already knows; keep only the key parts in code examples.
Frontmatter fieldRequiredDescription
nameNoStyle name; defaults to the file name (without .md).
descriptionNoStyle description; defaults to the first non-heading line of the body.
After creating it, enable it by referencing its name via outputStyle in settings (restart required). Plugin-provided styles are referenced with a plugin prefix, like plugin-name:style-name.

Writing advice

Tips for writing custom styles:
  • Focus on expression: describe expression-level preferences like tone, verbosity, and structure — not task logic.
  • Keep it lean: the style instruction is stacked onto the system prompt, and overly long ones consume context.
  • Don't try to override safety constraints: styles can only extend expression; they cannot change Qoder's identity or safety guidelines.

Relationship to other mechanisms

  • Versus the language setting: language controls the language of responses, outputStyle controls how they are expressed; the two can be combined.
  • Versus project instructions: project instruction files (AGENTS.md) describe "how to do things in this project" — project conventions; output styles describe "how to express things" — expression preferences. They serve different roles; see Memory.
  • Versus interface settings: output styles affect the response text itself, while interface themes and the status line affect the display layer; see Interface and Shortcuts.

Next steps