(https://github.githubassets.com) (https://avatars.githubusercontent.com) (https://github-cloud.s3.amazonaws.com) (https://user-images.githubusercontent.com/) (https://github.githubassets.com) (https://avatars.githubusercontent.com) (https://github.githubassets.com/assets/react-e27d1b3e03961e68.js) (https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js) (https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js) (https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js) (https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js) (https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js) (https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js) (https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js) (../../github.githubassets.com/assets/light-99f877e9ddfc0e51.css) (../../github.githubassets.com/assets/light_high_contrast-48fdd0811afbab3c.css) (../../github.githubassets.com/assets/dark-79ad2ace604703b3.css) (../../github.githubassets.com/assets/dark_high_contrast-24484a076f02295f.css) (../../github.githubassets.com/assets/primer-primitives-ed9ca172356fd545.css) (../../github.githubassets.com/assets/primer-1d2c7f7b52a6068b.css) (../../github.githubassets.com/assets/global-54ba76e934a49d7c.css) (../../github.githubassets.com/assets/github-456bd5deb85c7ecd.css) (../../github.githubassets.com/assets/repository-11ee8a031c040c1a.css) (../../github.githubassets.com/assets/code-2d56bdb0166c0238.css) (https://github.githubassets.com/assets/wp-runtime-abe1ce4e97812c0e.js) (https://github.githubassets.com/assets/app-foundation-74e9766bd696d26a.js) (https://github.githubassets.com/assets/app-runtime-eed8df9c2267c378.js) (https://github.githubassets.com/assets/fetch-utilities-5305162aa9984914.js) (https://github.githubassets.com/assets/ser-cd1b421ad0ad7ed5.js) (../../github.githubassets.com/assets/app-runtime.94e436d05b4d028c.module.css) (https://github.githubassets.com/assets/catalyst-86a8f5de995615f8.js) (https://github.githubassets.com/assets/selector-observer-e88088f989b27670.js) (https://github.githubassets.com/assets/relative-time-element-7cdf4e0db98b997c.js) (https://github.githubassets.com/assets/by-6b3c07383371bf58.js) (https://github.githubassets.com/assets/ja9-36f036c13c2e3a4c.js) (https://github.githubassets.com/assets/kw-866fd9513ae95106.js) (https://github.githubassets.com/assets/r1-b075aab3204f32f9.js) (https://github.githubassets.com/assets/jz5-7c5d1669717041f8.js) (https://github.githubassets.com/assets/hj-5126390ff433704d.js) (https://github.githubassets.com/assets/j05-dce4d588268f0f7e.js) (https://github.githubassets.com/assets/runtime-helpers-f3f5d71440009c48.js) (https://github.githubassets.com/assets/aria-live-76b18916d0c8ec4d.js) (https://github.githubassets.com/assets/hotkey-5109c77d7ac61078.js) (https://github.githubassets.com/assets/react-core-fbb00aaa3ab9abdf.js) (https://github.githubassets.com/assets/04-9cb1f09b927a3a68.js) (https://github.githubassets.com/assets/urv-b9498edf8699ddd8.js) (https://github.githubassets.com/assets/4t-364e19c63d726e9a.js) (https://github.githubassets.com/assets/6ny-c969fbae697a356f.js) (https://github.githubassets.com/assets/yhq-3a209035a30b1a09.js) (https://github.githubassets.com/assets/z1v-da5b33b877bfa358.js) (https://github.githubassets.com/assets/wo-09f85d22a6c8931b.js) (https://github.githubassets.com/assets/9y-81cfe57dc9040f3e.js) (https://github.githubassets.com/assets/j0-41a4cf04cbd99503.js) (https://github.githubassets.com/assets/0p-81491ed0d9d666e2.js) (../../github.githubassets.com/assets/react-core.5858534b1c27f133.module.css) (https://github.githubassets.com/assets/n9-97e2e5539969aaaf.js) (https://github.githubassets.com/assets/ic-991f04433f366e7b.js) (https://github.githubassets.com/assets/primer-react-ebb13b3991456052.js) (https://github.githubassets.com/assets/ncx-9a860680a5f230b9.js) (https://github.githubassets.com/assets/j6-363f0ebf4f62f310.js) (https://github.githubassets.com/assets/t7l-bf6f21d7e7a43c35.js) (https://github.githubassets.com/assets/fe-7576d9b281e2106a.js) (https://github.githubassets.com/assets/wsr-5fd3071e5a9061ab.js) (https://github.githubassets.com/assets/0n-ecadb2ffe6b01ba2.js) (https://github.githubassets.com/assets/xv-51cb34754bda73a9.js) (https://github.githubassets.com/assets/n4u-6317ce1c31aed1db.js) (https://github.githubassets.com/assets/j8s-d90ce3a169b741ed.js) (https://github.githubassets.com/assets/la-de176c4ee471f2b3.js) (https://github.githubassets.com/assets/eag-d9eea130fa716df9.js) (https://github.githubassets.com/assets/y2-87df441f1bc5a264.js) (https://github.githubassets.com/assets/kcz-607e36c8a3751cf0.js) (https://github.githubassets.com/assets/x4-65dba777efd828f3.js) (https://github.githubassets.com/assets/gzu-1a09248f686325f6.js) (https://github.githubassets.com/assets/on-95be29ba1ef725d9.js) (https://github.githubassets.com/assets/bi0-e2f78de823e39ca9.js) (https://github.githubassets.com/assets/b1-1dbc371cef78c3c1.js) (https://github.githubassets.com/assets/0l5-629d8eb51aea8084.js) (https://github.githubassets.com/assets/c2z-c92998400310b94b.js) (https://github.githubassets.com/assets/f9-038758dcbfe08dab.js) (https://github.githubassets.com/assets/0k-b7df0a74912a42bf.js) (https://github.githubassets.com/assets/sp-2bbb73a69162e23b.js) (https://github.githubassets.com/assets/og-93ae8b358505d372.js) (https://github.githubassets.com/assets/b9-69d9b60a1b1fcd59.js) (https://github.githubassets.com/assets/ec-ec74cb1fa6c31a3f.js) (https://github.githubassets.com/assets/du-bbe0f39cd2abe9a0.js) (https://github.githubassets.com/assets/ql0-6accb9e40c25a6a5.js) (https://github.githubassets.com/assets/20-0a2e46387735f1f4.js) (https://github.githubassets.com/assets/dsj-cb1e4ddbce4f007b.js) (https://github.githubassets.com/assets/wp-9f5235d335ab624b.js) (https://github.githubassets.com/assets/ko6-9e80f7ac359e3c43.js) (https://github.githubassets.com/assets/uw-8c275f7ac25b7cf6.js) (https://github.githubassets.com/assets/bsb-4f4ac8c20da73fac.js) (https://github.githubassets.com/assets/w5-13e3a7548bb20af9.js) (https://github.githubassets.com/assets/fm-48acadd6484db93b.js) (https://github.githubassets.com/assets/z-69921967c33df3d9.js) (https://github.githubassets.com/assets/h0-010921512138e12f.js) (https://github.githubassets.com/assets/5p-ae5db0820116fb43.js) (https://github.githubassets.com/assets/8vq-b2af216e992e11ef.js) (https://github.githubassets.com/assets/g5-f9aec79f12f9e445.js) (https://github.githubassets.com/assets/xc-f5d51b571cd317cb.js) (https://github.githubassets.com/assets/arw-51e8918a1b75a80f.js) (../../github.githubassets.com/assets/primer-react-css.870d8b2ed77cf7b3.module.css) (../../github.githubassets.com/assets/ql0.bd9e6b542f167fd8.module.css) (../../github.githubassets.com/assets/z.3094038d30e96da5.module.css) (../../github.githubassets.com/assets/xc.13e027137438fd9f.module.css) (../../github.githubassets.com/assets/code-view.2e6c2278bcb77993.module.css) (https://github.githubassets.com/assets/hu-1fc0b2a167afc025.js) (https://github.githubassets.com/assets/fbr-9cd34ba01ef26edb.js) (../../github.githubassets.com/assets/primer-react-css.870d8b2ed77cf7b3.module.css) (../../github.githubassets.com/assets/notifications-subscriptions-menu.ef00328f2228f95b.module.css) GitHub - davejpeters/opencode-mentor: An anti-vibecoding, programming mentor configuration · GitHub (repo_source) (https://github.githubassets.com/) (https://github.com/opensearch.xml) (GitHub) (https://github.com/fluidicon.png) (GitHub) (https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg) (https://github.githubassets.com/favicons/favicon.png) (../../github.githubassets.com/favicons/favicon.svg) (../manifest.json) (opencode-mentor.html#start-of-content) Skip to content (https://github.githubassets.com/assets/l7j-2ddd8b435dadae28.js) (https://github.githubassets.com/assets/keyboard-shortcuts-dialog-4745e5e49b728194.js) (../../github.githubassets.com/assets/primer-react-css.870d8b2ed77cf7b3.module.css) (../../github.githubassets.com/assets/keyboard-shortcuts-dialog.76508f5ec2ec28ae.module.css) (https://github.githubassets.com/assets/2l-a4cd948f93d92068.js) (https://github.githubassets.com/assets/i26-de97ea9fb4f29e3b.js) (https://github.githubassets.com/assets/fz5-23f28c0f388769c9.js) (https://github.githubassets.com/assets/lht-26506ea833dda5be.js) (https://github.githubassets.com/assets/p1-76a75a6081059b19.js) (https://github.githubassets.com/assets/3d8-bbc4e3ce35fac150.js) (https://github.githubassets.com/assets/tua-c4ca62c5e0e0318e.js) (https://github.githubassets.com/assets/4s-c22d880230690e1f.js) (https://github.githubassets.com/assets/marketing-header-5f5e501b5e4f19b2.js) (../../github.githubassets.com/assets/primer-react-css.870d8b2ed77cf7b3.module.css) (../../github.githubassets.com/assets/primer-react-brand-css.6a01c236ff527e7e.module.css) (../../github.githubassets.com/assets/4s.e3d02f110161be52.module.css) Navigation Menu (https://github.com/) (https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdavejpeters%2Fopencode-mentor) Sign in Appearance settings Platform AI CODE CREATION (https://github.com/features/copilot) GitHub Copilot Write better code with AI (https://github.com/features/ai/github-app) GitHub Copilot app Direct agents from issue to merge (https://github.com/mcp) MCP Registry Integrate external tools DEVELOPER WORKFLOWS (https://github.com/features/actions) Actions Automate any workflow (https://github.com/features/codespaces) Codespaces Instant dev environments (https://github.com/features/issues) Issues Plan and track work (https://github.com/features/code-review) Code Review Manage code changes (https://github.com/features/code-quality) Code Quality Enforce quality at merge APPLICATION SECURITY (https://github.com/security/advanced-security) GitHub Advanced Security Find and fix vulnerabilities (https://github.com/security/advanced-security/code-security) Code security Secure your code as you build (https://github.com/security/advanced-security/secret-protection) Secret protection Stop leaks before they start EXPLORE (https://github.com/why-github) Why GitHub (https://docs.github.com) Documentation (https://github.blog) Blog (https://github.blog/changelog) Changelog (https://github.com/marketplace) Marketplace (https://github.com/features) View all features Solutions BY COMPANY SIZE (https://github.com/enterprise) Enterprises (https://github.com/team) Small and medium teams (https://github.com/enterprise/startups) Startups (https://github.com/solutions/industry/nonprofits) Nonprofits BY USE CASE (https://github.com/solutions/use-case/app-modernization) App Modernization (https://github.com/solutions/use-case/devsecops) DevSecOps (https://github.com/solutions/use-case/devops) DevOps (https://github.com/solutions/use-case/ci-cd) CI/CD (https://github.com/solutions/use-case) View all use cases BY INDUSTRY (https://github.com/solutions/industry/healthcare) Healthcare (https://github.com/solutions/industry/financial-services) Financial services (https://github.com/solutions/industry/manufacturing) Manufacturing (https://github.com/solutions/industry/government) Government (https://github.com/solutions/industry) View all industries (https://github.com/solutions) View all solutions Resources EXPLORE BY TOPIC (https://github.com/resources/articles?topic=ai) AI (https://github.com/resources/articles?topic=software-development) Software Development (https://github.com/resources/articles?topic=devops) DevOps (https://github.com/resources/articles?topic=security) Security (https://github.com/resources/articles) View all topics EXPLORE BY TYPE (https://github.com/customer-stories) Customer stories (https://github.com/resources/events) Events & webinars (https://github.com/resources/whitepapers) Ebooks & reports (https://github.com/solutions/executive-insights) Business insights (https://skills.github.com) GitHub Skills SUPPORT & SERVICES (https://docs.github.com) Documentation (https://support.github.com) Customer support (https://github.com/orgs/community/discussions) Community forum (https://github.com/trust-center) Trust center (https://github.com/partners) Partners (https://github.com/resources) View all resources Open Source COMMUNITY (https://github.com/open-source/sponsors) GitHub Sponsors Fund open source developers PROGRAMS (https://securitylab.github.com) Security Lab (https://maintainers.github.com) Maintainer Community (https://stars.github.com) GitHub Stars (https://archiveprogram.github.com) Archive Program REPOSITORIES (https://github.com/topics) Topics (https://github.com/trending) Trending (https://github.com/collections) Collections Enterprise ENTERPRISE SOLUTIONS (https://github.com/enterprise) Enterprise platform AI-powered developer platform AVAILABLE ADD-ONS (https://github.com/security/advanced-security) GitHub Advanced Security Enterprise-grade security features (https://github.com/features/copilot/copilot-business) Copilot for Business Enterprise-grade AI features (https://github.com/enterprise/premium-support) Premium Support Enterprise-grade 24/7 support (https://github.com/pricing) Pricing Search / (https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fdavejpeters%2Fopencode-mentor) Sign in (https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=davejpeters%2Fopencode-mentor) Sign up Appearance settings You signed in with another tab or window. (opencode-mentor.html) Reload to refresh your session. You signed out in another tab or window. (opencode-mentor.html) Reload to refresh your session. You switched accounts on another tab or window. (opencode-mentor.html) Reload to refresh your session. Dismiss alert (https://github.com/davejpeters) davejpeters / (opencode-mentor.html) opencode-mentor Public (https://github.com/login?return_to=%2Fdavejpeters%2Fopencode-mentor) Notifications You must be signed in to change notification settings (https://github.com/login?return_to=%2Fdavejpeters%2Fopencode-mentor) Fork (0) 0 (https://github.com/login?return_to=%2Fdavejpeters%2Fopencode-mentor) Star (0) 0 (opencode-mentor.html) Code (Not available) (https://github.com/davejpeters/opencode-mentor/issues) Issues (0) 0 (https://github.com/davejpeters/opencode-mentor/pulls) Pull requests (0) 0 (https://github.com/davejpeters/opencode-mentor/actions) Actions (Not available) (https://github.com/davejpeters/opencode-mentor/projects) Projects (Not available) (https://github.com/davejpeters/opencode-mentor/security) Security and quality (0) 0 (https://github.com/davejpeters/opencode-mentor/pulse) Insights (Not available) Additional navigation options (opencode-mentor.html) Code (https://github.com/davejpeters/opencode-mentor/issues) Issues (https://github.com/davejpeters/opencode-mentor/pulls) Pull requests (https://github.com/davejpeters/opencode-mentor/actions) Actions (https://github.com/davejpeters/opencode-mentor/projects) Projects (https://github.com/davejpeters/opencode-mentor/security) Security and quality (https://github.com/davejpeters/opencode-mentor/pulse) Insights (opencode-mentor.html) main (https://github.com/davejpeters/opencode-mentor/branches) Branches (https://github.com/davejpeters/opencode-mentor/tags) Tags (https://github.com/davejpeters/opencode-mentor/branches) (https://github.com/davejpeters/opencode-mentor/tags) (Go to file) () Go to file Code Open more actions menu Latest commit History (https://github.com/davejpeters/opencode-mentor/commits/main/) 8 Commits (https://github.com/davejpeters/opencode-mentor/commits/main/) 8 Commits Folders and files Name Name (Last commit message) Last commit message (Last commit date) Last commit date (agents) (https://github.com/davejpeters/opencode-mentor/tree/main/agents) agents (agents) (https://github.com/davejpeters/opencode-mentor/tree/main/agents) agents (commands) (https://github.com/davejpeters/opencode-mentor/tree/main/commands) commands (commands) (https://github.com/davejpeters/opencode-mentor/tree/main/commands) commands (plugins) (https://github.com/davejpeters/opencode-mentor/tree/main/plugins) plugins (plugins) (https://github.com/davejpeters/opencode-mentor/tree/main/plugins) plugins (rules) (https://github.com/davejpeters/opencode-mentor/tree/main/rules) rules (rules) (https://github.com/davejpeters/opencode-mentor/tree/main/rules) rules (skills) (https://github.com/davejpeters/opencode-mentor/tree/main/skills) skills (skills) (https://github.com/davejpeters/opencode-mentor/tree/main/skills) skills (tools) (https://github.com/davejpeters/opencode-mentor/tree/main/tools) tools (tools) (https://github.com/davejpeters/opencode-mentor/tree/main/tools) tools (.gitignore) (https://github.com/davejpeters/opencode-mentor/blob/main/.gitignore) .gitignore (.gitignore) (https://github.com/davejpeters/opencode-mentor/blob/main/.gitignore) .gitignore (AGENTS.md) (https://github.com/davejpeters/opencode-mentor/blob/main/AGENTS.md) AGENTS.md (AGENTS.md) (https://github.com/davejpeters/opencode-mentor/blob/main/AGENTS.md) AGENTS.md (README.md) (https://github.com/davejpeters/opencode-mentor/blob/main/README.md) README.md (README.md) (https://github.com/davejpeters/opencode-mentor/blob/main/README.md) README.md (bun.lock) (https://github.com/davejpeters/opencode-mentor/blob/main/bun.lock) bun.lock (bun.lock) (https://github.com/davejpeters/opencode-mentor/blob/main/bun.lock) bun.lock (opencode.json) (https://github.com/davejpeters/opencode-mentor/blob/main/opencode.json) opencode.json (opencode.json) (https://github.com/davejpeters/opencode-mentor/blob/main/opencode.json) opencode.json (tsconfig.json) (https://github.com/davejpeters/opencode-mentor/blob/main/tsconfig.json) tsconfig.json (tsconfig.json) (https://github.com/davejpeters/opencode-mentor/blob/main/tsconfig.json) tsconfig.json (tui.json) (https://github.com/davejpeters/opencode-mentor/blob/main/tui.json) tui.json (tui.json) (https://github.com/davejpeters/opencode-mentor/blob/main/tui.json) tui.json View all files Repository files navigation (opencode-mentor.html#) README Moreitems MAI: Mentor AI Infrastructure for OpenCode (opencode-mentor.html#mai-mentor-ai-infrastructure-for-opencode) MAI is an opinionated (https://opencode.ai/) OpenCode configuration for learning software development with AI. It is inspired by (https://boot.dev/) Boot.dev and (https://github.com/danielmiessler/pai) PAI , with a mentor-first goal: use AI to strengthen reasoning and independent problem-solving, not merely to produce code quickly. The default assistant is Rob , a learning orchestrator that routes work to specialist agents. The prompts favor diagnosis, small hints, deliberate practice, review, verification, and gradually reduced support. This repository is configuration and an evolving experiment, not a claim that AI can replace teachers, experience, or independent judgment. Architecture (opencode-mentor.html#architecture) OpenCode -> opencode.json and AGENTS.md -> mentor-orchestrator -> mentor | reviewer | architect | drill-instructor -> skills and project-aware tools -> local learner state and session reflection opencode.json selects the primary agent, loads plugins, configures Context7, and defines baseline permissions. AGENTS.md establishes the Rob identity and repository-wide operating rules. agents/ contains the orchestrator and specialist prompts. skills/core/SKILL.md supplies the shared tutoring policy at runtime. tools/tutor.ts exposes learner-profile, concept-graph, curriculum, exercise, grading, and reflection tools implemented under tools/tutor/ . plugins/context-loader.ts injects the shared Core policy once per session. Agent Roles (opencode-mentor.html#agent-roles) Agent Responsibility Mentor Orchestrator Classifies requests, retrieves only relevant learner context, and delegates to a specialist. Mentor Explains concepts, diagnoses errors, and gives the least help needed for progress. Reviewer Reviews submitted work for correctness, design, security, and learning evidence without rewriting it by default. Architect Explores system boundaries, data flow, constraints, and trade-offs. Drill Instructor Creates focused exercises, evaluates attempts, and adjusts difficulty from observed results. A pair-programmer prompt is included but disabled by default so the mentor-first workflow remains the primary path. OpenCode's built-in explore agent is used for codebase discovery where permitted. Pedagogy (opencode-mentor.html#pedagogy) (https://github.com/davejpeters/opencode-mentor/blob/main/PEDAGOGY.md) PEDAGOGY.md explains the educational rationale and vocabulary. (https://github.com/davejpeters/opencode-mentor/blob/main/skills/core/SKILL.md) skills/core/SKILL.md is the operational source of truth for tutoring behavior. Role prompts in agents/ specialize Core without replacing it. skills/assignment/ defines learner-owned practice tasks; the other skills add focused workflows such as review, TDD, security, and Go development. The central loop is diagnose → teach → practice → assess → reflect → progress . Assistance is calibrated to demonstrated work, and the system aims to fade scaffolding as the learner becomes more independent. Repository Layout (opencode-mentor.html#repository-layout) Path Purpose agents/ Primary and specialist agent definitions. commands/ Reusable OpenCode command prompts. plugins/ Context loading, environment protection, command filtering, and desktop notifications. rules/ Language- and workflow-specific instructions. skills/ Loadable guidance for pedagogy and engineering workflows. tools/ Tutor-state tools and small utilities such as JSON validation, date/time, math, and speech. PEDAGOGY.md Maintainer-facing teaching model. BACKLOG.md Planned improvements. Runtime learner state is written inside each active project under .opencode/mentor/ . It can contain learner identifiers, project paths, goals, evidence, misconceptions, exercises, and reflections. Runtime learner state and personal metadata are intentionally not distributed with this public configuration. Prerequisites and Setup (opencode-mentor.html#prerequisites-and-setup) Prerequisites: A working OpenCode installation. (https://bun.sh/) Bun for the TypeScript tools and plugins. Git for installation and updates. Optional: (https://github.com/upstash/context7) Context7 MCP network access for current library documentation, (https://github.com/steveyegge/beads) beads for issue tracking, (https://github.com/Graphify-Labs/graphify) graphify or (https://github.com/colbymchenry/codegraph) codegraph for codebase discovery. Back up any existing OpenCode configuration before installing. Then clone this repository as the global configuration and install its development dependency: mv ~ /.config/opencode ~ /.config/opencode.backup git clone https://github.com/davejpeters/opencode-mentor ~ /.config/opencode cd ~ /.config/opencode bun install Review opencode.json , agent permissions, and plugin behavior before first use. Restart OpenCode after changing configuration, agents, skills, or plugins because those files are loaded at startup. Customization (opencode-mentor.html#customization) Common starting points: Change the Rob name and identity in AGENTS.md . Adjust language and workflow rules under rules/ . Tune agent prompts and permissions in agents/ and opencode.json . Add, remove, or revise workflows under skills/ . Review defaults in tools/tutor/runtime.ts , including the preferred language and learner identifier strategy. Disable integrations that are unavailable on your machine. Add more skills, tools, agents, commands, and plugins. Safety Boundaries (opencode-mentor.html#safety-boundaries) The configuration combines prompt-level boundaries with OpenCode permissions and small defensive plugins: Shell commands generally require approval; a narrow set of read-only or verification commands is allowed explicitly. plugins/env-protection.ts blocks tool reads whose path contains .env . plugins/safety-filter.ts blocks shell commands containing rm . Agent permissions restrict editing, writing, shell use, and delegation by role. The mentor policy avoids complete target implementations while guided learning can still move the learner forward. OpenCode sharing is disabled in opencode.json . These are guardrails, not a security sandbox. Inspect proposed commands and changes, keep secrets out of the repository, and tighten permissions for your environment. Optional Machine-Specific Integrations (opencode-mentor.html#optional-machine-specific-integrations) plugins/notifications.ts calls notify-send for idle-session and permission-request desktop notifications. It is intended for Linux desktops with a notification daemon; remove the plugin from opencode.json elsewhere. The notification plugin tolerates command failures. About An anti-vibecoding, programming mentor configuration Resources (opencode-mentor.html#readme-ov-file) Readme (https://github.com/davejpeters/opencode-mentor/activity) Activity Stars 0 stars Watchers 1 watching Forks (https://github.com/davejpeters/opencode-mentor/forks) 0 forks (https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fdavejpeters%2Fopencode-mentor&report=davejpeters+%28user%29) Report repository Releases Packages Used by Contributors Languages Footer (https://github.com) © 2026 GitHub, Inc. Footer navigation (https://docs.github.com/site-policy/github-terms/github-terms-of-service) Terms (https://docs.github.com/site-policy/privacy-policies/github-privacy-statement) Privacy (https://github.com/security) Security (https://www.githubstatus.com/) Status (https://github.community/) Community (https://docs.github.com/) Docs (https://support.github.com?tags=dotcom-footer) Contact Manage cookies Do not share my personal information You can’t perform that action at this time.