Coding Friend

Coding Friend adds skills, agents, and hooks to Claude Code, Codex, and the agents you already use β€” plan, implement, review, ship, with project memory underneath.

πŸ’‘ If you have problems with CF, use /cf-help to get help or ask in the GitHub Discussions.

✨ Latest changes

plugin v0.46.52026-10-23

  • Remove autoApprove for Claude Code and omp: the hook forced a prompt on anything it was unsure about, even with Claude Code auto mode on. Use the native auto / yolo modes there. autoApprove stays for Codex, Antigravity and Devin; autoApproveLLM and the session-start warning about dangerous .claude/settings* allow rules are gone #b30bc3a7

cli v1.42.42026-10-23

  • cf init, cf config and cf permission: autoApprove is now described as Codex / Antigravity / Devin only, and the audit of dangerous Claude allow rules is removed, since Claude Code uses its native auto mode #b30bc3a7

All releases β†’

Coding Friend adds skills, agents, and hooks to the tools you already use. You get plan β†’ implement β†’ review β†’ commit, with project knowledge in docs/ and learning notes in ~/.coding-friend/learn/. A memory system runs underneath, along with useful hooks and mechanisms to protect your privacy and security.

How Coding Friend works: you invoke /cf-* skills, skills dispatch agents, agents write to your repo; hooks intercept skills, agents record to docs/, and CF Memory (MCP) reads and writes docs/How Coding Friend works: you invoke /cf-* skills, skills dispatch agents, agents write to your repo; hooks intercept skills, agents record to docs/, and CF Memory (MCP) reads and writes docs/

Harness only

Without CF

You can only rely on the harness and default settings of the tool you’re using, or sometimes no harness at all. Even small tool changes can affect your usual workflow without you noticing.

Standards Β· memory

With CF

Besides the harness for the tool you’re using, CF suggests best-practice standards for daily workflowsβ€”from planning and code reviews to bug fixes, research, and optimization. CF also includes a memory system that helps agents avoid spending too many tokens on topics they’ve worked on before. You can also build a learning hub for readers as you work with CF; the system will help summarize everything and turn it into a polished website.

🀝 Supported Tools

Coding Friend installs on the host you already use.

HostSupportCommandNotes
Claude Code100%cf installDefault.
oh-my-pi95%cf install --agent ompBeta. Skills come from the Claude plugin cache.
Devin CLI86%cf install --agent devinBeta. Requires devin >= 3000.11.3. Deferred memory auto-capture.
Codex77%cf install --agent codexBeta. Invoke as $cf-*. Partial hooks. Auto-approve.
Antigravity73%cf install --agent agyBeta. Requires agy >= 1.1.0. No memory auto-capture.
Cursor100%comes with ClaudeRuns Claude Code / Codex underneath.
Grok Build100%comes with ClaudeSame as Cursor.
ZCode100%via github marketplacenot tested 100%

% = Claude is a baseline with all skills, agents, hooks. Some are Claude only: statusline, session save/restore (/cf-session), and task tracking. Other hosts ship their own equivalents, so they are not counted.

πŸ“¦ Install

Copy and paste this prompt into your AI agent β€” it will read the documentation and set up everything automatically:

Install Coding Friend from https://cf.dinhanhthi.com on my system. First read the installation documentation to understand what Coding Friend is and how to install it properly. Check if I have Node.js 20+, install coding-friend-cli globally, then install the plugin for my current AI agent (auto-detect: Claude Code, Codex, oh-my-pi, Antigravity, Devin CLI, etc.). After installation, initialize the project with cf init. Guide me through the entire process and verify everything works correctly.

πŸ“‹ Manual Installation

You need Node 20+ and a supported host.

npm i -g coding-friend-cli
# If `cf` is taken, use `cdf`

cf install               # Claude Code (default)
cf install --agent codex # or 'omp', 'agy', 'devin'

cf init                  # per project: docs/, .coding-friend/config.json
cf update                # later: pull the newest plugin

# Need help?
cf help

# Get Started in any project
cf init

Scope with --user | --project | --local. Host aliases: --codex / --omp / --agy / --devin. Then use /cf-help inside your agent to ask anything about CF.

Via Plugin Manager

plugin marketplace add dinhanhthi/coding-friend
plugin install coding-friend@coding-friend-marketplace

Devin CLI (beta): devin plugins install dinhanhthi/coding-friend#plugin-devin installs the generated plugin-devin/ directly. Inside Devin, invoke skills bare or namespaced β€” /cf-plan or /coding-friend:cf-plan.

After cf init or working with CF, a folder docs/ is created inside your project with nested folders for plans, memory, research, reviews,... and more.

✨ Features

Skills are slash commands (/cf-*) or auto-invoked when a matching situation appears. Settings that live in config.json β€” run cf config and follow the instructions there. To extend a built-in skill, see Custom Guides.

πŸ” Workflow

You plan, implement, review, commit, then ship. Bugs loop through /cf-fix and cf-sys-debug.

The daily workflow: /cf-plan hands tasks to cf-tdd/implement, the diff goes to /cf-review, then /cf-commit and /cf-ship; under the hood cf-explorer and cf-planner serve /cf-plan, cf-implementer runs tasks, cf-reviewer reviews the diff itself, cf-writer writes docs; bugs loop through /cf-fix and cf-sys-debug; after the merge, cf-verification, /cf-remember, and /cf-learn runThe daily workflow: /cf-plan hands tasks to cf-tdd/implement, the diff goes to /cf-review, then /cf-commit and /cf-ship; under the hood cf-explorer and cf-planner serve /cf-plan, cf-implementer runs tasks, cf-reviewer reviews the diff itself, cf-writer writes docs; bugs loop through /cf-fix and cf-sys-debug; after the merge, cf-verification, /cf-remember, and /cf-learn run

πŸ—ΊοΈ Plan & build

  • /cf-plan (source) β€” Brainstorms with you, then writes a phased plan under docs/plans/<plan-name>/ (plus brief.md with the original request and Q&A in normal/hard mode). Under the hood: cf-explorer maps the repo, cf-planner compares approaches, then cf-implementer runs each task. Each phase stays reviewable (at most 15 files) without over-splitting (fewest phases that fit, normally 3+ tasks each), so reviews stay fast and cheap. Available modes:

    • (none) β€” normal: full workflow, writes the plan file
    • --fast / --quick β€” skip discovery and the planner; plan stays in chat, no file. If the plan turns multi-phase it switches to normal and writes the file. Combined with autopilot (--auto or planAuto), the file is always written
    • --hard β€” extra discovery plus rollback planning
    • --auto β€” after approval, run every phase (review, fix Critical/Important, commit) with no prompts; combines with any mode. Also on when config planAuto: true unless --no-auto
    • --no-auto β€” force autopilot off for this run, even if planAuto: true
    • --commit-per-task β€” with autopilot, commit each task as phase N/M task i/K <title> and review once per phase over those commits; [parallel] phases run sequentially. Also on when config planCommitPerTask: true
    • --no-commit-per-task β€” force commit-per-task off for this run, even if planCommitPerTask: true
    • --inline / --no-file β€” plan in chat only, no file; cannot combine with autopilot (--auto or planAuto)
    • --model <alias> β€” pin cf-planner (opus / sonnet / haiku / fable); ignored in fast
    • --gui / --human β€” also write a human overview doc (off by default). To turn that doc on for every run, use cf config
    • --add-tests / --tdd β€” not a plan mode; forwarded to every cf-implementer so each task uses TDD. Without it, implementers write code with no new tests

    Example output:

    Progress
    
    | Status         | Phase             | Tasks   |
    | -------------- | ----------------- | ------- |
    | βœ… DONE        | Phase 1: Teardown | 3 tasks |
    | πŸ”„ IN PROGRESS | Phase 4: Content  | 6 tasks |
    | ⬜ TODO        | Phase 5: Merge    | 1 task  |
    
    #### Phase 1 [sequential]
    
  • /cf-plan-resume (source) β€” Reloads a saved plan and its context file, skips DONE tasks, re-runs the rest via the same execute protocol. If the plan has auto: true and an AUTOPILOT section, it continues in autopilot, honoring frontmatter commitPerTask: true; --commit-per-task / --no-commit-per-task override it.

  • /cf-plan-review (source) β€” Reviews a saved plan folder with a fresh in-session reviewer before you implement it; --codex / --gemini / --claude / --cursor / --grok add external reviewers in parallel and merge. --fix (--inline) applies Critical/Important findings immediately. Writes review.md next to the plan and, without --fix, offers to apply Critical/Important findings.

  • /cf-advise (source) β€” Interviews one question at a time, then a verdict-first recommendation with pitfalls and ranked alternatives. Never writes code or a plan. Flags: --quick / --fast (2–3 questions), --save (write to docs/memory/decisions/).

  • /cf-design (beta) (source) β€” Makes new or changed UI match the project's existing look. The first word of the argument picks the mode (empty β†’ it asks which one):

    • scan [path] β€” read existing UI files, extract colors / type / spacing / components, write docs/DESIGN.md
    • [description] β€” implement new UI from that description, using docs/DESIGN.md (or a fresh scan) as the base
    • modify [what] -- [how] β€” change one element and keep it consistent with the rest of the project
  • /cf-showcase (source) β€” Builds an intro video (mp4) or poster (png / pdf / html) from the project's real content into docs/showcase/. The agent invents the concept itself (no fixed scene order, scene types or style) and only asks practical questions: length, language, aspect or size, output format, what to emphasize, audio. --video / --poster skip the format question. Video is 30s by default; above 90s it warns about file size and render time, then lets you decide. --default skips the questions and uses your saved defaults (showcase in config, or built-ins); it still shows the concept first. Without it, the skill offers to save your answers as defaults for this project or all projects. You can also edit them with cf config or the cf init menu.

  • /cf-optimize (source) β€” Detects available profilers, measures a baseline, changes one thing, re-measures, compares.

πŸ› Fix & debug

  • /cf-fix (source) β€” Reproduces the bug, searches past bug docs, explores, fixes, verifies, then reviews. Escalates hard bugs to cf-sys-debug. --add-tests (or --tdd) writes a failing test first when none exists.

    Example output:

    > ✨ **CODING FRIEND** β†’ /cf-fix activated
    
    Root cause:   [what was wrong, file:line]
    Fix:          [what changed, file:line]
    Confirmed:    [evidence or test that proves the fix]
    Tests:        [pass/fail count, regression test location]
    Status: DONE
    
  • cf-sys-debug (source) β€” Four phases: state a file:line hypothesis before touching code, test it, apply a regression-guarded fix, write a bug doc. Auto-invoked for recurring or unclear bugs.

  • cf-tdd (source) β€” Auto-loaded before production code. Direct mode (default) writes no new tests. TDD mode is --add-tests or --tdd, or tdd: true via cf config. --auto then reviews, fixes Critical/Important, and commits.

  • cf-verification (source) β€” Auto-invoked after code changes. Runs tests / build / lint, shows the output, and blocks a "done" claim without evidence.

πŸš€ Review & ship

  • /cf-review (source) β€” Snapshots the diff and hands it to cf-reviewer, which checks all five layers: project rules, plan alignment, correctness, security, tests.

    • Depth β€” auto from change size, or force with --quick / --deep:
      • TRIVIAL β€” no reviewer: ≀2 files and ≀20 lines, no sensitive paths, only a secrets check (skipped when you pass --quick / --deep)
      • QUICK / STANDARD β€” 1 reviewer
      • DEEP β€” 2 reviewers (cf-reviewer-security joins in parallel)
    • External reviewers (opt-in, run in parallel, merged into the same report):
      • --with-codex / --codex, --claude, --gemini, --cursor, --grok
      • --out β€” write a /cf-review-out prompt instead (not with the flags above)
      • Codex on by default: cf config
    • Fix & commit:
      • --fix β€” apply Critical/Important findings, then re-review (up to review.maxRounds, default 5)
      • --commit β€” implies --fix; commits only the reviewed paths once clean, after a secret scan; stops on a pre-commit hook failure
      • --no-fix / --no-commit β€” force off; config review.fix / review.commit make --fix / --commit the default (/cf-plan, /cf-tdd autopilot and /cf-commit pass --no-fix); unless you typed /cf-review (e.g. after /cf-fix / /cf-optimize), a config-driven commit is skipped when the tree has paths this session did not touch
      • Neither works with a commit-range target or --out
    • Report β€” always ends with Review status: COMPLETE | PARTIAL | FAILED
      • COMPLETE = full coverage, not "no findings"
      • PARTIAL / FAILED stops an autopilot commit
    • Timeouts:
      • review.nativeTimeout (600s) β€” soft budget for in-session reviewers
      • review.agentTimeout (300s) β€” hard limit on each external reviewer
    • Specialists β€” one generalist is a trade-off, not a free win. cf-reviewer-plan, -quality, -tests, -rules, and -reducer stay directly callable when a layer deserves its own pass.

    Example output:

    🚨 Critical
    - None.
    
    ⚠️ Important
    - None.
    
    πŸ’‘ Suggestions
    - None.
    
    πŸ“‹ Summary
    No blocking issues found. You're clear to commit.
    Review status: COMPLETE
    
  • /cf-review-out (source) β€” Writes a self-contained prompt + diff to docs/reviews/ for any external AI or a human.

  • /cf-review-in (source) β€” Reads that result file, presents findings, offers to fix.

  • /cf-commit (source) β€” Analyzes the diff, soft-review check, conventional commit focused on why.

  • /cf-ship (source) β€” Verify β†’ commit β†’ push β†’ PR. --dry-run simulates and does not commit, push, or open a PR. Custom Before guides run first (for example a version bump).

External review: /cf-review runs --codex, --gemini, --cursor, or --grok in parallel and merges; or hand off manually β€” /cf-review-out writes a prompt for any AI, /cf-review-in reads the results backExternal review: /cf-review runs --codex, --gemini, --cursor, or --grok in parallel and merges; or hand off manually β€” /cf-review-out writes a prompt for any AI, /cf-review-in reads the results back

πŸ’‘ Knowledge

  • /cf-ask (source) β€” Explores the codebase (cf-explorer), answers a focused question, saves the Q&A to docs/memory/.
  • /cf-scan (source) β€” Token-heavy project scan; writes architecture, conventions, and stack into memory (updates, does not duplicate).
  • /cf-remember (source) β€” Extracts conversation knowledge into docs/memory/ (bugs, decisions, conventions, features) for later AI recall. Also auto-invoked.
  • /cf-learn (source) β€” Writes educational notes for you (default ~/.coding-friend/learn/). Host with cf learn host or share with cf mcp. Output, language, and related settings: cf config. Run cf learn host and you get a site like this: Learn host
  • /cf-teach (source) β€” Conversational story of what happened and why. Writes under docs/learn by default (not the same folder as /cf-learn). Language and output: cf config.
  • /cf-research (source) β€” Parallel web / subagent research β†’ docs/research/. Does not plan or build.

πŸ“Œ Context & session

  • /cf-session (beta) (source) β€” Claude only. Saves the session to docs/sessions/ so you can restore it on another machine.
  • /cf-checkpoint (source) β€” Writes a resume snapshot (goal, decisions, next steps) to docs/context/checkpoints/.
  • /cf-checkpoint-from (source) β€” Loads that snapshot into a fresh chat, then does the rest of the message. --recap also prints a short summary of the restored context.
  • /cf-warm (source) β€” Reads git history since you were away, groups it by topic, writes docs/warm/. --user <name> (else git config user.name), --n-commits <N> (default 10).
  • /cf-later (source) β€” Saves a task you want to defer to docs/later/; on Claude Code it runs in a separate subagent, so your current chat stays clean. Pick it up later with /cf-later-do.
  • /cf-later-do (source) β€” Lists docs/later/ items, you pick one, routes to /cf-fix or /cf-plan, deletes the file only after the fix is verified.

❓ Help

  • /cf-help (source) β€” Ask anything about Coding Friend: skills, flags, agents, hooks, CLI, config, memory, hosts. Also auto-invoked when you ask about the toolkit itself.

🧠 Memory

Every session starts from scratch. CF Memory is persistent, searchable project knowledge. Markdown in docs/memory/ is the source of truth. Three search tiers degrade gracefully (SQLite β†’ MiniSearch β†’ grep). Use it from other LLM tools via the MCP server (cf mcp). Run cf config for tier, embeddings, and capture.

CF Memory architecture: a Claude Code session calls the MCP server over stdio; searches go direct to tier 1 SQLite (FTS5 + vectors), over HTTP/UDS to the Hono daemon serving tier 2 MiniSearch (BM25 + fuzzy), or direct to tier 3 grep; SQLite falls back to the daemon and the daemon falls back to grep; all three tiers read the markdown files in docs/memory/CF Memory architecture: a Claude Code session calls the MCP server over stdio; searches go direct to tier 1 SQLite (FTS5 + vectors), over HTTP/UDS to the Hono daemon serving tier 2 MiniSearch (BM25 + fuzzy), or direct to tier 3 grep; SQLite falls back to the daemon and the daemon falls back to grep; all three tiers read the markdown files in docs/memory/

βœ… Auto-approve

Permission gate for Codex, Antigravity and Devin that auto-approves safe tool calls and working-dir edits and blocks destructive commands. Deterministic rules only, no LLM. Anything the rules do not cover goes back to the host's native approval prompt. Run cf config.

Claude Code and omp: Coding Friend does not add an auto-approve hook. Use their native modes instead: Claude Code auto / acceptEdits / sandboxed Bash, omp yolo (its default).

Auto-approve pipeline: rule-based checks, then working-dir checks, then everything else goes to the host's native approval promptAuto-approve pipeline: rule-based checks, then working-dir checks, then everything else goes to the host's native approval prompt

  • Rule-Based Gate: Instant pattern matching β€” read-only tools auto-approved, destructive commands blocked.
  • Working-Dir Edits: File edits inside your project directory are auto-approved.
  • Test Runners: npm test, pnpm exec playwright test, pytest, go test, cargo test, mvn test, rspec and friends are always auto-approved, in every language β€” including piped and chained forms like npm test 2>&1 | tail -50, as long as every other segment is safe too. On Devin, re-gate them with autoApproveIgnore.
  • Native Fallback: Unknown tools and commands get no Coding Friend decision. Codex and Devin show their native approval prompt; Antigravity asks.

You can extend the Bash allow list in config:

{
  "autoApprove": true,
  // extra command prefixes to auto-approve. Merged across global + local
  "autoApproveAllowExtra": ["cargo check", "terraform plan"],
  // Devin only: leave these commands to Devin's native prompt.
  // this is also how you re-gate test runners
  "autoApproveIgnore": ["cargo test", "cargo build"]
}

⚠️ Not 100% safe: CF auto-approve is an additional layer that helps reduce prompts, but it doesn't guarantee 100% safety. You can still trigger unsafe actions if you use the wrong command.

πŸ›‘οΈ Security

Layered prompt-injection defense. Three layers: isolation, extraction, then alert. Fetched content is data, never instructions.

Security layers: isolation of fetched content as data, extraction of facts only, then alert on injection attemptsSecurity layers: isolation of fetched content as data, extraction of facts only, then alert on injection attempts

  • Isolation: External content flagged as untrusted data β€” never treated as instructions.
  • Extraction: Only facts and information extracted β€” embedded commands discarded.
  • Alert: Suspicious content flagged to user β€” prompt injection attempts exposed.

πŸ“Ÿ Statusline

Claude only. Run cf statusline to install the renderer.

Statusline

🧭 Agents

Skills dispatch agents as subagents that run in their own context.

AgentModelDoesDispatched by
cf-explorer (source)haikuMaps the repo and writes context files/cf-plan, /cf-fix, /cf-ask, /cf-advise, /cf-optimize, /cf-research, /cf-scan, /cf-showcase
cf-planner (source)inheritCompares approaches and breaks work into tasks/cf-plan
cf-implementer (source)inheritWrites the code (TDD with --add-tests)/cf-plan, /cf-plan-resume, /cf-fix, /cf-optimize, /cf-review --fix, cf-tdd
cf-reviewer (source)inheritReviews the diff across all five layers/cf-review (1 QUICK, 1 STANDARD, 2 DEEP)
cf-reviewer-plan (source)sonnetChecks the diff against the plandirect call only
cf-reviewer-security (source)sonnetFinds security issues in the diff/cf-review in DEEP (2nd reviewer)
cf-reviewer-quality (source)haikuNames, complexity, duplication, slopdirect call only
cf-reviewer-tests (source)haikuCoverage and missing testsdirect call only
cf-reviewer-rules (source)haikuCLAUDE.md MUST/SHOULD/ALWAYS/NEVERdirect call only
cf-reviewer-reducer (source)haikuDeduplicates and ranks findings/cf-plan-review (merges external reviews) β€” /cf-review merges inline
cf-writer (source)haikuWrites straightforward markdown/cf-learn, /cf-remember, /cf-scan, /cf-fix, /cf-ask, /cf-advise, /cf-sys-debug, /cf-warm
cf-writer-deep (source)sonnetWrites deep technical docs/cf-learn, /cf-teach, /cf-plan (overview), /cf-remember, /cf-scan

πŸ“˜ Custom Guides

Extend a built-in skill without editing the plugin. When that skill runs, CF loads your guide (if one exists) and applies its sections: ## Before before the first step, ## Rules throughout, ## After after the last step. Sections are optional β€” include only what you need.

cf guide create cf-commit   # scaffolds the local file
cf guide list               # local guides in this project

cf guide create writes a project file. The skill name must match a built-in skill (cf-commit, cf-plan, …). It will not overwrite an existing guide.

ScopePathWho it applies to
Local.coding-friend/skills/<skill-name>-custom/SKILL.mdThis project. Wins if both exist.
Global~/.coding-friend/skills/<skill-name>-custom/SKILL.mdAll projects. Create this file yourself.

Local and global are not merged β€” if the local file exists, the global one is ignored. The loader resolves the path from the git project root, so it still works if your shell is in a subdirectory.

Example β€” .coding-friend/skills/cf-commit-custom/SKILL.md:

## Before

- Check branch naming convention (must match `feat/XX-*` or `fix/XX-*`)

## Rules

- Always include the JIRA ticket from the branch name in the commit subject

## After

- Run tests if the commit type is `feat:` or `fix:`

The next time you run /cf-commit, that guide is loaded. No /clear needed.

βš™οΈ Config

You have two config files. Global is ~/.coding-friend/config.json. Project is .coding-friend/config.json β€” local overrides global at the same top-level keys.

// Some examples
{
  "language": "en",
  "docsDir": "docs",
  "tdd": false,
  "planAuto": false,
  "planCommitPerTask": false,
  "autoApprove": false,
  "review": {
    "withCodex": false,
    "maxRounds": 5
  },
  "memory": {
    "autoCapture": false
  },
  "learn": {
    "outputDir": "~/.coding-friend/learn"
  },
  "showcase": {
    "video": {
      "length": "auto",
      "aspect": "16:9",
      "audio": true,
      "languages": ["en"]
    },
    "poster": {
      "size": "1200x630",
      "formats": ["png"],
      "languages": ["en"]
    }
  }
}

Learn notes default to ~/.coding-friend/learn/ (learn.outputDir is configurable). docsDir is for plans, memory, and research β€” not the default learn output.

KeyDescription
languageLanguage for docs (plans, memory, research, ask). Default: en.
docsDirBase docs directory relative to project root (plans, memory, research). Default: docs. Not the default learn output.
autoApproveEnable the auto-approve hook for Codex, Antigravity and Devin. Default: false.
privacyBlockPrivacy-block hook (deny .env, keys, credentials). Default: true.
scoutBlockScout-block hook (deny ignored dirs). Default: true. Set in global ~/.coding-friend/config.json or local .coding-friend/config.json; local overrides global.
autoApproveAllowExtraBash command prefixes to auto-approve (merged across global + local).
autoApproveIgnoreDevin only. Bash command prefixes left to Devin's native prompt.
disableGUIPlanDisable the human overview doc /cf-plan generates. Default: true.
guiPlanFormatFormat for the GUI plan: html or md. Default: html.
learnLearn settings: language, outputDir, categories. Default outputDir: ~/.coding-friend/learn.
reviewReview settings. Nested object; withCodex runs a Codex second opinion; withClaude / withGrok / withCursor / withGemini add that headless external reviewer (all default false); agentTimeout (default 300) is enforced on each external reviewer subprocess; nativeTimeout (default 600) is a cooperative budget for each in-session reviewer job; maxRounds (default 5) caps the autopilot review-fix loop and the /cf-review --fix loop; fix / commit (default false) make /cf-review run with --fix / --commit by default (unless you typed /cf-review (e.g. after /cf-fix / /cf-optimize), a config-driven commit is skipped when the tree has paths this session did not touch).
tddBoolean. Enable TDD (RED→GREEN→REFACTOR) by default.
planAutoBoolean. Default /cf-plan into autopilot without --auto. --no-auto forces off. /cf-plan-resume ignores this key. Default: false.
planCommitPerTaskBoolean. Under /cf-plan autopilot, commit each task separately and review once per phase (range review, so review.with* external reviewers do not run). Ignored without autopilot. --no-commit-per-task forces off. /cf-plan-resume ignores this key but honors frontmatter commitPerTask: true and accepts --commit-per-task / --no-commit-per-task. Default: false.
showcaseDefaults for /cf-showcase --default. video: length ("auto" or seconds), aspect (16:9, 1:1, 9:16), audio, languages. poster: size (A4, A3, letter, WxH), formats (png, pdf, html), languages. Local overrides global per field. Built-ins: video auto / 16:9 / audio on; poster 1200x630 / png; languages from language. Edit with cf config or the cf init menu.
memoryObject. MemoryConfig for search tier, embeddings, and capture.

memory (MemoryConfig) keys:

  • tier β€” "auto", "full", "lite", or "markdown".
  • embedding β€” object with provider ("transformers" or "ollama"), model, and ollamaUrl.
  • autoCapture β€” boolean. Save session context on PreCompact.
  • autoStart β€” boolean. Start the memory daemon when the MCP server connects.

List gitignore-style paths in .coding-friend/ignore so scout-block skips them. A global ~/.coding-friend/ignore applies too; local overrides global. Use !pattern to unblock a default (e.g. !vendor) or, in the local file, a pattern from the global file; to unblock a custom pattern, delete its line.