cyberine
UsageRun recipes

Output styles — /output-style persona overlay (T539)

/output-style is a SEPARATE toggle from /style (get/set the chat TRANSCRIPT verbosity — compact/verbose/json, run /help inside cyberine chat for the full command list) and from CYBERINEPERSONA...

/output-style is a SEPARATE toggle from /style (get/set the chat TRANSCRIPT verbosity — compact/verbose/json, run /help inside cyberine chat for the full command list) and from CYBERINE_PERSONA (the identity preamble above, which stays untouched). An output style is a suffix block appended AFTER the planner's full system prompt (persona + operational instructions) that reshapes reply SHAPE — terse vs teaching vs unchanged — without touching the persona or the tool-use instructions. The two toggles are orthogonal and combine freely (e.g. concise persona + compact transcript truncation).

cyberine chat
# inside the chat:
/output-style                # show the active style + list every available one
/output-style concise        # switch — takes effect starting the NEXT turn, no /clear needed
/output-style explanatory
/output-style default        # back to the planner's plain tone (no overlay)

Built-in presets:

idEffect
defaultstandard planner tone — no overlay (the pre-T539 behavior)
conciseterse replies — minimal prose, no preamble/postamble
explanatoryteaches while it answers — briefly explains reasoning and tradeoffs alongside the direct answer

The active style id is persisted on the session record (ChatSessionRecord.outputStyleId) and restored on /resume / cyberine chat --resume <id>; older sessions saved before T539 fall back to default.

Extend: user-defined styles via config.json

Add an outputStyles array to any layer of the config.json stack (~/.cyberine/config.json or <project>/.cyberine/config.json / config.local.json — same layering as everything else in "Configuration file" above, merged BY id so a project file can add a house style without repeating the user's global ones):

{
  "outputStyles": [
    { "id": "pirate", "name": "Pirate", "description": "arrr", "prompt": "Speak like a pirate." }
  ]
}

id/name/prompt are required strings; description is optional (shown by /output-style with no argument). A user style can never shadow a built-in id (first registration wins). Registration happens once at process startup (src/core/config.ts calls registerCustomOutputStyles from src/core/outputStyles.ts), so a new style needs a fresh cyberine chat to take effect.