/settings
Interactive settings menu for nyann preferences. View current values in a table, then pick one setting to change at a time via AskUserQuestion. Re-runnable anytime — does not require a full setup wizard. TRIGGER when the user says "change nyann settings", "nyann preferences",
Claude Code
$ npx -y skills add thettwe/nyann --skill settings --agent claude-code
Codex
$ npx skills add thettwe/nyann --skill settings -a codex -y
Cursor
$ npx skills add thettwe/nyann --skill settings -a cursor -y
Gemini CLI
$ npx skills add thettwe/nyann --skill settings -a gemini-cli -y
GitHub Copilot
$ npx skills add thettwe/nyann --skill settings -a github-copilot -y
OpenCode
$ npx skills add thettwe/nyann --skill settings -a opencode -y
Windsurf
$ npx skills add thettwe/nyann --skill settings -a windsurf -y
SKILL.md
settings.SKILL.mdname: settings
description: >
Interactive settings menu for nyann preferences. View current values
in a table, then pick one setting to change at a time via
AskUserQuestion. Re-runnable anytime — does not require a full setup
wizard.
TRIGGER when the user says "change nyann settings", "nyann
preferences", "configure nyann settings", "update my preferences",
"toggle triage", "disable sentinel", "enable session triage",
"/nyann:settings", "show nyann settings", "nyann config".
ALSO trigger on direct shortcut: "/nyann:settings <key> <value>" —
skip the menu and write the value directly.
Do NOT trigger on "/nyann:setup" — that is the first-run wizard.
Do NOT trigger on "/nyann:check-prereqs" — that inspects host tools,
not nyann config.
settings
> **CRITICAL**: This skill uses `AskUserQuestion` for every choice. > **NEVER ask the user questions as plain text.**
**Script paths:** nyann is a Claude Code plugin. Plugin root is two levels above this SKILL.md (`<plugin_root>/skills/settings/SKILL.md`). All scripts live at `<plugin_root>/bin/`.
Step 0: Verify setup ran
Run `bash <plugin_root>/bin/setup.sh --check --json`. If `status != "configured"`, hand off to the `setup` skill — settings edits a file that doesn't exist yet.
Step 1: Direct shortcut path
If the user typed `/nyann:settings <key> <value>` (or otherwise gave both a key and a value in natural language), skip the menu and run:
bash <plugin_root>/bin/settings.sh --set <key> <value>
Surface the one-line confirmation and stop. No further prompts.
Step 2: Show current preferences
Run `bash <plugin_root>/bin/settings.sh --show` and render the output as a markdown table:
| Setting | Value |
|----------------------------------|-----------------------------|
| Default profile | auto-detect |
| Branching strategy | auto-detect |
| Commit format | conventional-commits |
| GitHub CLI | enabled |
| Documentation storage | local |
| Auto-sync team profiles | off |
| Session triage | enabled |
| Guard severity (default) | advisory |
| CI sentinel notifications | enabled |
| Staleness alerts | enabled |
| Git identity | Name <email> |
Step 3: Ask which setting to change
Call `AskUserQuestion` with options listing each setting. Add a final "Done — no changes" option:
AskUserQuestion caps the options array at 4 entries per question, so present the picker in two passes: first ask the user which group of settings to explore, then ask which specific setting in that group to change.
Pass 1 — group picker:
{
"questions": [
{
"question": "Which group of settings would you like to change?",
"header": "Group",
"multiSelect": false,
"options": [
{ "label": "Core (profile, branching, commits, GitHub CLI)", "description": "Day-to-day defaults" },
{ "label": "Documentation + team sync", "description": "Docs storage, auto-sync of team profile sources" },
{ "label": "Proactive features (triage, guards, notifications)", "description": "Awareness + monitoring toggles" },
{ "label": "Done — no changes", "description": "Exit without writing" }
]
}
]
}Pass 2 — based on the group, ask the specific setting:
**Core group:**
{
"questions": [{
"question": "Which core setting would you like to change?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Default profile", "description": "Stack-aware preference for which profile to apply" },
{ "label": "Branching strategy", "description": "github-flow | gitflow | trunk-based | auto-detect" },
{ "label": "Commit format", "description": "conventional-commits | custom" },
{ "label": "GitHub CLI", "description": "enabled | disabled (branch protection, PR helpers)" }
]
}]
}**Documentation + team sync group:**
{
"questions": [{
"question": "Which documentation / team-sync setting?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Documentation storage", "description": "local | obsidian | notion" },
{ "label": "Auto-sync team profiles", "description": "Auto-sync team profile sources during bootstrap" }
]
}]
}**Proactive features group:**
{
"questions": [{
"question": "Which proactive-feature toggle?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Session triage", "description": "Quiet drift check on first message each session" },
{ "label": "Guard severity (default)", "description": "advisory | confirm — pre-action guard severity floor" },
{ "label": "Notifications (sentinel/staleness)", "description": "In-session CI sentinel + doc staleness toggles" },
{ "label": "Notification delivery", "description": "Send alerts to Slack/Discord/webhook/email" }
]
}]
}If the user picks **Notifications (sentinel/staleness)**, ask which of the two in-session toggles to change (CI sentinel notifications | Staleness alerts), then go to Step 4 for that toggle.
If the user picks **Notification delivery**, run the delivery sub-flow (Step 3a) below instead of Step 4 — delivery channels are multi-field, not a single enum.
Step 3a: Notification delivery sub-flow
External delivery fans queued notifications out to Slack, Discord, a generic webhook, email, a GitHub issue digest, or a native OS toast. First pick the channel (AskUserQuestion caps at 4 options — sp
Read more
name: settings description: > Interactive settings menu for nyann preferences. View current values in a table, then pick one setting to change at a time via AskUserQuestion. Re-runnable anytime — does not require a full setup wizard. TRIGGER when the user says "change nyann settings", "nyann preferences", "configure nyann settings", "update my preferences", "toggle triage", "disable sentinel", "enable session triage", "/nyann:settings", "show nyann settings", "nyann config". ALSO trigger on direct shortcut: "/nyann:settings <key> <value>" — skip the menu and write the value directly. Do NOT trigger on "/nyann:setup" — that is the first-run wizard. Do NOT trigger on "/nyann:check-prereqs" — that inspects host tools, not nyann config.
settings
> **CRITICAL**: This skill uses `AskUserQuestion` for every choice. > **NEVER ask the user questions as plain text.**
**Script paths:** nyann is a Claude Code plugin. Plugin root is two levels above this SKILL.md (`<plugin_root>/skills/settings/SKILL.md`). All scripts live at `<plugin_root>/bin/`.
Step 0: Verify setup ran
Run `bash <plugin_root>/bin/setup.sh --check --json`. If `status != "configured"`, hand off to the `setup` skill — settings edits a file that doesn't exist yet.
Step 1: Direct shortcut path
If the user typed `/nyann:settings <key> <value>` (or otherwise gave both a key and a value in natural language), skip the menu and run:
bash <plugin_root>/bin/settings.sh --set <key> <value>
Surface the one-line confirmation and stop. No further prompts.
Step 2: Show current preferences
Run `bash <plugin_root>/bin/settings.sh --show` and render the output as a markdown table:
| Setting | Value | |----------------------------------|-----------------------------| | Default profile | auto-detect | | Branching strategy | auto-detect | | Commit format | conventional-commits | | GitHub CLI | enabled | | Documentation storage | local | | Auto-sync team profiles | off | | Session triage | enabled | | Guard severity (default) | advisory | | CI sentinel notifications | enabled | | Staleness alerts | enabled | | Git identity | Name <email> |
Step 3: Ask which setting to change
Call `AskUserQuestion` with options listing each setting. Add a final "Done — no changes" option:
AskUserQuestion caps the options array at 4 entries per question, so present the picker in two passes: first ask the user which group of settings to explore, then ask which specific setting in that group to change.
Pass 1 — group picker:
{
"questions": [
{
"question": "Which group of settings would you like to change?",
"header": "Group",
"multiSelect": false,
"options": [
{ "label": "Core (profile, branching, commits, GitHub CLI)", "description": "Day-to-day defaults" },
{ "label": "Documentation + team sync", "description": "Docs storage, auto-sync of team profile sources" },
{ "label": "Proactive features (triage, guards, notifications)", "description": "Awareness + monitoring toggles" },
{ "label": "Done — no changes", "description": "Exit without writing" }
]
}
]
}Pass 2 — based on the group, ask the specific setting:
**Core group:**
{
"questions": [{
"question": "Which core setting would you like to change?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Default profile", "description": "Stack-aware preference for which profile to apply" },
{ "label": "Branching strategy", "description": "github-flow | gitflow | trunk-based | auto-detect" },
{ "label": "Commit format", "description": "conventional-commits | custom" },
{ "label": "GitHub CLI", "description": "enabled | disabled (branch protection, PR helpers)" }
]
}]
}**Documentation + team sync group:**
{
"questions": [{
"question": "Which documentation / team-sync setting?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Documentation storage", "description": "local | obsidian | notion" },
{ "label": "Auto-sync team profiles", "description": "Auto-sync team profile sources during bootstrap" }
]
}]
}**Proactive features group:**
{
"questions": [{
"question": "Which proactive-feature toggle?",
"header": "Setting",
"multiSelect": false,
"options": [
{ "label": "Session triage", "description": "Quiet drift check on first message each session" },
{ "label": "Guard severity (default)", "description": "advisory | confirm — pre-action guard severity floor" },
{ "label": "Notifications (sentinel/staleness)", "description": "In-session CI sentinel + doc staleness toggles" },
{ "label": "Notification delivery", "description": "Send alerts to Slack/Discord/webhook/email" }
]
}]
}If the user picks **Notifications (sentinel/staleness)**, ask which of the two in-session toggles to change (CI sentinel notifications | Staleness alerts), then go to Step 4 for that toggle.
If the user picks **Notification delivery**, run the delivery sub-flow (Step 3a) below instead of Step 4 — delivery channels are multi-field, not a single enum.
Step 3a: Notification delivery sub-flow
External delivery fans queued notifications out to Slack, Discord, a generic webhook, email, a GitHub issue digest, or a native OS toast. First pick the channel (AskUserQuestion caps at 4 options — sp
ငြမ်း is Burmese for scaffolding. Nyann is the Claude Code plugin that picks expert git defaults for your stack — branching, working hooks (Husky / pre-commit.com / lefthook), commits, releases, CI, docs — then keeps the repo on those rails through every PR
Other skills on nyann.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about settings.
- Which coding agents can use settings?
- settings installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

