# Version only the skills and plugins trees. # # This directory is the OpenCode config root. OpenCode scans exactly two # subdirectories for content: # # ~/.config/opencode/skills/ -> agent skills # ~/.config/opencode/plugins/ -> server plugins (auto-discovered) # ~/.config/opencode/memory/ -> memory store written by the memory plugin # # A .git directory inside either of those gets picked up as a plugin and fails # to load, so the repository lives one level up, here, and everything that is # not skills/ or plugins/ is ignored. # # Ignore every top-level entry, then re-admit only the two content trees and # this file. A bare /* is not enough: git will not descend into an ignored # directory, so the un-ignore rules are required. /* !/skills/ !/plugins/ !/memory/ !/.gitignore !/AGENTS.md # Per-memory hit counters. Derived data: regenerating it costs one recall, and # committing it would rewrite the file on every retrieval and create merge # conflicts across devices. memory/**/.state.json # UTF-8 shell launcher (see https://www.xsinfo.vip/windows/01-opencode-utf8.html). # Portable: it only calls chcp and pwsh.exe from PATH, so it is safe to share. !/pwsh.cmd # opencode.json is intentionally NOT tracked: its "shell" field holds an absolute # per-user Windows path (C:\Users\\...), which breaks OpenCode on Linux/macOS. # Each machine keeps its own opencode.json and points "shell" at its own pwsh.cmd. # npm manifest for the sqlite plugin's better-sqlite3 dependency; without it the # plugin fails to load with "Cannot find package 'better-sqlite3'". !/package.json # Belt and braces, in case a path is ever added from the parent side. node_modules/ *.log