{"id":50577974,"url":"https://github.com/docg1701/pi-dev-config","last_synced_at":"2026-06-05T00:00:43.785Z","repository":{"id":353872421,"uuid":"1221066850","full_name":"docg1701/pi-dev-config","owner":"docg1701","description":"Reproducible Pi.dev configuration with skills, extensions, and agent rules","archived":false,"fork":false,"pushed_at":"2026-06-04T18:43:25.000Z","size":296,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-04T19:07:06.766Z","etag":null,"topics":["agents","ai","coding-agent","configuration","devops","llm","pi","pi-dev","super-pi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/docg1701.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-25T17:55:15.000Z","updated_at":"2026-06-04T18:43:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/docg1701/pi-dev-config","commit_stats":null,"previous_names":["docg1701/pi-dev-config"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/docg1701/pi-dev-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docg1701%2Fpi-dev-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docg1701%2Fpi-dev-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docg1701%2Fpi-dev-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docg1701%2Fpi-dev-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/docg1701","download_url":"https://codeload.github.com/docg1701/pi-dev-config/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/docg1701%2Fpi-dev-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33924832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai","coding-agent","configuration","devops","llm","pi","pi-dev","super-pi"],"created_at":"2026-06-05T00:00:29.260Z","updated_at":"2026-06-05T00:00:43.779Z","avatar_url":"https://github.com/docg1701.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pi-dev-config\n\nReproducible [Pi](https://pi.dev) configuration. Clone, install, and run anywhere with the same extensions, skills, and rules.\n\n![pi-dev-config screenshot](assets/screenshot-01.webp)\n\n[![CI](https://github.com/docg1701/pi-dev-config/actions/workflows/ci.yml/badge.svg)](https://github.com/docg1701/pi-dev-config/actions/workflows/ci.yml)\n\n## Contents\n\n- [Quick Start](#quick-start)\n- [Skills](#skills)\n- [Extensions](#extensions)\n- [Themes](#themes)\n- [Settings \u0026 Models](#settings--models)\n- [Provider Setup](#provider-setup)\n- [Working Vibes](#working-vibes)\n- [Notifications](#notifications)\n- [Ghostty](#ghostty)\n- [Context \u0026 Rules](#context--rules)\n- [CI \u0026 Validation](#ci--validation)\n- [Repository Structure](#repository-structure)\n- [Troubleshooting](#troubleshooting)\n- [License](#license)\n\n## Quick Start\n\n```bash\n# Clone\ngit clone git@github.com:docg1701/pi-dev-config.git ~/dev/pi-dev-config\n\n# Install extensions\npi install npm:pi-subagents\npi install npm:pi-prompt-template-model\npi install npm:pi-agent-browser-native\npi install npm:pi-extension-manager\npi install npm:pi-mcp-adapter\npi install npm:pi-mermaid\npi install npm:pi-smart-fetch\npi install npm:pi-glance\npi install npm:@eko24ive/pi-ask\npi install npm:@leonardorick/pi-web-search\npi install npm:pi-ollama-cloud\npi install npm:pi-alert\npi install npm:pi-working-vibe\npi install npm:@victor-software-house/pi-curated-themes\n\n# Install skills\nnpx skills add https://github.com/upstash/context7 --skill find-docs\nnpx skills add https://github.com/199-biotechnologies/claude-deep-research-skill --skill deep-research\nnpx skills add https://github.com/vercel-labs/skills --skill find-skills\nnpx skills add https://github.com/streamlit/agent-skills --skill developing-with-streamlit\nnpx skills add https://github.com/aj-geddes/useful-ai-prompts --skill ansible-automation\nnpx skills add https://github.com/coreyhaines31/marketingskills --skill product-marketing\nnpx skills add https://github.com/obra/superpowers --skill systematic-debugging\n\n# Copy APPEND_SYSTEM.md to extend the agent's system prompt\ncp ~/dev/pi-dev-config/APPEND_SYSTEM.md ~/.pi/agent/APPEND_SYSTEM.md\n\n# Copy custom vibe files\ncp ~/dev/pi-dev-config/vibes/*.txt ~/.pi/agent/vibes/\n\n# Copy settings\ncp ~/dev/pi-dev-config/settings.json ~/.pi/agent/settings.json\n\n# Reload pi\n# /reload\n```\n\n## Skills\n\n### Skills.sh registry\n\n| Name | Description | Install |\n|------|-------------|---------|\n| `find-docs` | Library docs via Context7 CLI. Prefer over web search. | `npx skills add https://github.com/upstash/context7 --skill find-docs` |\n| `deep-research` | 8-phase citation-backed research. Quick/standard/deep/ultradeep. | `npx skills add https://github.com/199-biotechnologies/claude-deep-research-skill --skill deep-research` |\n| `find-skills` | Discover and install skills from the open skills ecosystem. | `npx skills add https://github.com/vercel-labs/skills --skill find-skills` |\n| `developing-with-streamlit` | Official Streamlit routing skill: creation, editing, debug, styling, performance, themes, deploy, and custom components. | `npx skills add https://github.com/streamlit/agent-skills --skill developing-with-streamlit` |\n| `ansible-automation` | Infrastructure automation with Ansible playbooks, roles, and inventory. | `npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill ansible-automation` |\n| `product-marketing` | Create `.agents/product-marketing.md` (foundational positioning/messaging). Use first before other marketing skills. | `npx skills add https://github.com/coreyhaines31/marketingskills --skill product-marketing` |\n| `systematic-debugging` | 4-phase root-cause debugging. Includes root-cause-tracing, defense-in-depth, condition-based-waiting. | `npx skills add https://github.com/obra/superpowers --skill systematic-debugging` |\n| `ask-user` | Reinforces when to use `ask_user` for structured clarification instead of guessing. | Bundled with `@eko24ive/pi-ask` |\n\n### Marketing suite\n\nAll from [`coreyhaines31/marketingskills`](https://github.com/coreyhaines31/marketingskills). Install the full suite with `npx skills add https://github.com/coreyhaines31/marketingskills --skill product-marketing`.\n\n| Name | Description |\n|------|-------------|\n| `product-marketing` | Foundational positioning and messaging context. Use first. |\n| `marketing-ideas` | 139 proven marketing ideas for SaaS. |\n| `content-strategy` | Plan content strategy, topic clusters, editorial calendar, and content pillars. |\n| `copywriting` | Write or improve marketing copy for homepages, landing pages, pricing, and product pages. |\n| `copy-editing` | Edit, review, and tighten existing marketing copy. |\n| `seo-audit` | Technical and on-page SEO audits; diagnose ranking issues. |\n| `programmatic-seo` | Create SEO-driven pages at scale using templates and data. |\n| `ai-seo` | Optimize content for AI search engines and LLM citations. |\n| `schema` | Add, fix, or optimize schema markup and structured data. |\n| `site-architecture` | Plan and restructure page hierarchy, navigation, URL structure, and internal linking. |\n| `analytics` | Set up, improve, or audit analytics tracking (GA4, GTM, Mixpanel, Segment). |\n| `ab-testing` | Plan, design, and implement A/B tests and growth experiments. |\n| `cro` | Conversion rate optimization for landing pages, forms, and marketing pages. |\n| `signup` | Optimize signup, registration, and trial activation flows. |\n| `onboarding` | Optimize post-signup onboarding, user activation, and time-to-value. |\n| `paywalls` | Create and optimize in-app paywalls, upgrade screens, and upsell modals. |\n| `churn-prevention` | Build cancellation flows, save offers, dunning, and retention strategies. |\n| `pricing` | Pricing decisions, packaging, and monetization strategy. |\n| `ads` | Paid advertising campaigns (Google Ads, Meta, LinkedIn, Twitter/X). |\n| `ad-creative` | Generate and iterate ad copy, headlines, and creative variations at scale. |\n| `social` | Social media content creation, scheduling, and optimization. |\n| `video` | Create and produce video content with AI tools and programmatic frameworks. |\n| `image` | Create, generate, edit, or optimize marketing images and brand assets. |\n| `emails` | Email sequences, drip campaigns, lifecycle email programs, and nurture flows. |\n| `cold-email` | B2B cold emails and follow-up sequences that get replies. |\n| `sms` | SMS/MMS marketing flows, abandoned cart texts, and promotional sends. |\n| `popups` | Popups, modals, overlays, slide-ins, and banners for conversion. |\n| `lead-magnets` | Create and optimize lead magnets for email capture and lead generation. |\n| `free-tools` | Plan and build free tools for lead generation, SEO value, and brand awareness. |\n| `directory-submissions` | Submit product to startup/SaaS/AI directories for backlinks and discovery. |\n| `referrals` | Create and optimize referral, affiliate, and word-of-mouth programs. |\n| `co-marketing` | Find co-marketing partners and plan joint campaigns. |\n| `community-marketing` | Build and leverage online communities for product growth and brand loyalty. |\n| `competitor-profiling` | Research, profile, and analyze competitors from their URLs. |\n| `competitors` | Create competitor comparison and alternative pages for SEO and sales enablement. |\n| `prospecting` | Find, qualify, and build lists of B2B prospects. |\n| `sales-enablement` | Create sales collateral, pitch decks, one-pagers, objection handling, and demo scripts. |\n| `revops` | Revenue operations, lead lifecycle management, and marketing-to-sales handoff. |\n| `customer-research` | Conduct, analyze, and synthesize customer research, interviews, and surveys. |\n| `aso` | Audit and optimize App Store and Google Play listings. |\n| `marketing-psychology` | Apply psychological principles and behavioral science to marketing. |\n| `launch` | Product launch, feature announcement, and release strategy. |\n\n### Other official registries\n\n- [Anthropic Skills](https://github.com/anthropics/skills) — document processing, web dev.\n- [Pi Skills](https://github.com/badlogic/pi-skills) — web search, browser automation, Google APIs, transcription.\n\n## Extensions\n\n| Name | Description | Install |\n|------|-------------|---------|\n| `pi-subagents` | Delegate tasks to subagents with chains, parallel execution, TUI clarification, and async support. | `pi install npm:pi-subagents` |\n| `pi-prompt-template-model` | Prompt templates with model/skill frontmatter and slash commands. | `pi install npm:pi-prompt-template-model` |\n| `pi-agent-browser-native` | `agent-browser` as a native tool. Snapshots, screenshots, sessions. | `pi install npm:pi-agent-browser-native` |\n| `pi-extension-manager` | `/extensions` command for local and community package management. Includes auto-update checker (off by default — enable with `/extensions auto-update daily`). | `pi install npm:pi-extension-manager` |\n| `pi-mcp-adapter` | Token-efficient MCP proxy. Lazy servers, cached metadata. | `pi install npm:pi-mcp-adapter` |\n| `pi-mermaid` | Mermaid diagrams as ASCII art in TUI. | `pi install npm:pi-mermaid` |\n| `pi-smart-fetch` | Smarter `web_fetch` with TLS fingerprinting and Defuddle extraction. | `pi install npm:pi-smart-fetch` |\n| `pi-glance` | Calm input surface with rounded multiline editor and inline status (model · context · tokens · cost · git). 10 built-in themes. | `pi install npm:pi-glance` |\n| `@eko24ive/pi-ask` | Ask tool with structured questions (single/multi/preview), option notes, elaboration flow, and native `@` file references. | `pi install npm:@eko24ive/pi-ask` |\n| `@leonardorick/pi-web-search` | Real DuckDuckGo web search as a native `web_search` tool. Companion to `pi-smart-fetch`. | `pi install npm:@leonardorick/pi-web-search` |\n| `pi-ollama-cloud` | Ollama Cloud provider with dynamic model discovery, persistent cache, and built-in `ollama_web_search`/`ollama_web_fetch` tools. | `pi install npm:pi-ollama-cloud` |\n| `pi-alert` | System notification when the agent finishes its turn. Terminal-native (Ghostty, iTerm2, WezTerm, Kitty, rxvt-unicode) with OS fallback. | `pi install npm:pi-alert` |\n\n## Themes\n\n| Name | Description | Install |\n|------|-------------|---------|\n| `@victor-software-house/pi-curated-themes` | 65 curated dark terminal themes adapted from iTerm2-Color-Schemes to pi's 51-token model. Semantic variants with guaranteed hue separation. | `pi install npm:@victor-software-house/pi-curated-themes` |\n\nSelect a theme in `/settings`, or set it in `~/.pi/agent/settings.json`:\n\n```json\n{\n  \"theme\": \"catppuccin-mocha\"\n}\n```\n\nAvailable themes include `catppuccin-mocha`, `dracula`, `gruvbox-dark`, `kanagawa-wave`, `everforest-dark-hard`, `lovelace`, `mellow`, `vesper`, and 57 others. See the [full curated list](https://github.com/victor-software-house/pi-curated-themes).\n\n## Settings \u0026 Models\n\nPi looks for a single file at `~/.pi/agent/settings.json`. The destination file must always be named `settings.json` — pi does not read any other filename directly.\n\n```bash\ncp ~/dev/pi-dev-config/settings.json ~/.pi/agent/settings.json\n# /reload\n```\n\n### Model catalog\n\nThis repository targets the [Ollama Cloud](https://ollama.com) catalog via [`pi-ollama-cloud`](https://github.com/fgrehm/pi-ollama-cloud). Capabilities below come from the live Ollama Cloud `/api/show` endpoint — run `/ollama-cloud-refresh` to refresh them locally.\n\n| Model | Params | Vision | Thinking | Context | Usage (ollama.com) | Role |\n|-------|--------|--------|----------|---------|--------------------|------|\n| `minimax-m3` | undisclosed | yes | yes | 512K | high (3/4) | Default orchestrator, planner, worker, reviewer, researcher, delegate |\n| `nemotron-3-ultra` | 550B | no | yes | 256K | high (3/4) | Disabled by default — see [Troubleshooting](#troubleshooting); re-test target 2026-06-11 |\n| `deepseek-v4-pro` | undisclosed | no | yes | 1M | **extra heavy (4/4)** | Oracle + context-builder (where reasoning depth justifies cost) |\n| `deepseek-v4-flash` | 158B | no | yes | 1M | low (2/4) | Scout (fast, cheap) |\n| `kimi-k2.6` | 1.04T | yes | yes | 256K | high (3/4) | Vision-capable 1T-class option |\n| `glm-5.1` | 756B | no | yes | 198K | high (3/4) | Alternative training distribution |\n\n\u003e **⚠️ Context window may expand without notice.** Two models in this catalog are\n\u003e currently capped below the vendor's advertised limit by the Ollama Cloud provider:\n\u003e\n\u003e | Model | Ollama Cloud (current) | Vendor (advertised) | Source |\n\u003e |---|---|---|---|\n\u003e | `minimax-m3` | 512K | 1M (guaranteed minimum per the vendor) | [MiniMax docs](https://www.minimax.io/models/text/m3) |\n\u003e | `nemotron-3-ultra` | 256K | 1M | [NVIDIA Nemotron 3 Ultra](https://docs.api.nvidia.com/nim/reference/nvidia-nemotron-3-ultra-550b-a55b) |\n\u003e\n\u003e When Ollama Cloud raises these limits, re-run `/ollama-cloud-refresh` in pi and\n\u003e update the `Context` column in this table to match the live value reported in\n\u003e `~/.pi/agent/cache/ollama-cloud-models.json`. If a model stops being available\n\u003e entirely, re-validate the subagent mappings in\n\u003e [Subagent models](#subagent-models) against whatever replaces it.\n\n### Subagent models\n\n| Subagent | Model | Thinking |\n|----------|-------|----------|\n| scout | `deepseek-v4-flash` (fast) | `xhigh` |\n| planner | `minimax-m3` | `high` |\n| worker | `minimax-m3` | `high` |\n| reviewer | `minimax-m3` | `high` |\n| oracle | `deepseek-v4-pro` | `xhigh` |\n| context-builder | `deepseek-v4-pro` | `xhigh` |\n| researcher | `minimax-m3` | `high` |\n| delegate | `minimax-m3` | `high` |\n\n### Thinking rules\n\nPer family, sourced from each creator's official docs:\n\n- **`deepseek*` → `xhigh`.** The [DeepSeek API docs](https://api-docs.deepseek.com/guides/thinking_mode) define exactly two effort levels — `high` and `max` — and document that `xhigh` maps to `max`. Default is `high`; [complex agent requests (Claude Code, OpenCode) are auto-promoted to `max`](https://api-docs.deepseek.com/guides/thinking_mode). The [DeepSeek-V4 model card](https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro) shows measurable gains from `max` over `high` on agentic benchmarks (Apex 27.4→38.3, BrowseComp 53.5→73.2, LiveCodeBench 88.4→91.6 for V4-Flash). This config runs agentic loops, so `xhigh` is the right level.\n- **`minimax*`, `nemotron*`, `kimi*`, `glm*` → `high`.** The creator docs for [MiniMax M3](https://minimax.io/blog/minimax-m3), [NVIDIA Nemotron 3 Ultra](https://docs.api.nvidia.com/nim/reference/nvidia-nemotron-3-ultra-550b-a55b), kimi-k2.6, and [GLM-5.1](https://huggingface.co/zai-org/GLM-5.1) expose thinking as a binary on/off toggle, not as a graduated effort level. The `pi-ollama-cloud` extension passes `max` for `xhigh` to the OpenAI-compat endpoint, but those models do not differentiate between `high` and `max` — the parameter is effectively a no-op. Use `high` to keep the config honest; pushing to `xhigh` is wasted quota. The `reviewer` subagent sits at `high` for this reason.\n- The default orchestrator (`minimax-m3`) sits at `high` via `defaultThinkingLevel`.\n\n## Provider Setup\n\n### Ollama Cloud\n\n[pi-ollama-cloud](https://github.com/fgrehm/pi-ollama-cloud) registers Ollama Cloud as a model provider with dynamically fetched models and built-in web search/fetch tools.\n\n**Setup:**\n\n```bash\n# 1. Get an API key at ollama.com and set it\nexport OLLAMA_API_KEY=\"your-ollama-cloud-api-key\"\n# Or add it to ~/.pi/agent/auth.json:\n# { \"ollama-cloud\": { \"type\": \"api_key\", \"key\": \"your-key\" } }\n\n# 2. Fetch the full model list (run after install and whenever models change)\n/ollama-cloud-refresh\n```\n\nOn first launch (before `/ollama-cloud-refresh`), a small set of fallback models is used. After refresh, all tool-capable Ollama Cloud models become available under the `ollama-cloud` provider — switch with `/model` or `Ctrl+L`. Models are cached at `~/.pi/agent/cache/ollama-cloud-models.json` (never expires; refresh manually).\n\n**Tools added:**\n\n| Tool | Description |\n|------|-------------|\n| `ollama_web_search` | Web search via Ollama Cloud's search API |\n| `ollama_web_fetch` | Web page fetch and extraction via Ollama Cloud |\n\nBoth use the same API key configured for the provider — no local Ollama server needed. These coexist with `web_search` (DuckDuckGo via `pi-web-search`) and `web_fetch` (via `pi-smart-fetch`).\n\n\u003e **Recommendation:** run `/ollama-webtools off` to disable `ollama_web_search` and `ollama_web_fetch`. They are inferior to DuckDuckGo's `web_search` and TLS-fingerprinted `web_fetch` — Ollama tends to prefer its own tools when available, even when the results are worse. With `/ollama-webtools off`, the model falls back to the higher-quality tools automatically.\n\n## Working Vibes\n\n[pi-working-vibe](https://github.com/Davidcreador/pi-working-vibe) replaces pi's default `Working…` message with themed flavor text that rotates while the agent thinks, and auto-switches per tool (`bash`, `read`, `edit`, `write`, `grep`, `find`, `ls`, `web_search`, `web_fetch`, `todo`).\n\nThis repo includes **four** custom vibe files:\n\n| Theme | File | Phrases | Flavor |\n|-------|------|---------|--------|\n| `startrek` | `vibes/startrek.txt` | 99 | Engaging warp drive, scanning for lifeforms... |\n| `klingon` | `vibes/klingon.txt` | 26 | Qapla'! bortaS bIr jablu'DI'... (with translation) |\n| `dadjokes` | `vibes/dadjokes.txt` | 200+ | Hi Hungry, I'm Dad... Surely you can't be serious... |\n| `bbs` | `vibes/bbs.txt` | 52 | NO CARRIER... l33t skillz... RTFM... |\n\n### Setup\n\n```bash\n# 1. Install the extension\npi install npm:pi-working-vibe\n\n# 2. Copy custom vibe files to your global config\ncp ~/dev/pi-dev-config/vibes/*.txt ~/.pi/agent/vibes/\n\n# 3. Copy settings\ncp ~/dev/pi-dev-config/settings.json ~/.pi/agent/settings.json\n\n# 4. Reload pi\n# /reload\n```\n\n`settings.json` is pre-configured with `workingVibe: true` and `workingVibeName: \"startrek\"`. Bundled themes from the extension (`mafia`, `hacker`, `pirate`, `zen`) remain available — switch with `/vibe vibe:\u003cname\u003e`.\n\n### Vibe file format\n\nVibe files are plain text. One phrase per line, terminating in `...`. `#` for comments. Optional `[section]` headers split lines into pools:\n\n```\n# startrek.txt\nEngaging warp drive...\nScanning for lifeforms...\n\n[tool:bash]\nDiverting power to shields...\n\n[tool:read]\nExtending sensor pallets...\n```\n\nPools fall back to `[default]` when the active tool has no dedicated section. Files without headers become one big default pool (backward compatible).\n\n### Commands\n\n| Command | Effect |\n|---------|--------|\n| `/vibe` | Toggle master switch |\n| `/vibe on` / `/vibe off` | Enable / disable |\n| `/vibe list` | List installed vibes (user + bundled) |\n| `/vibe info` | Show active settings + line counts |\n| `/vibe pools` | List sections in the active vibe |\n| `/vibe preview` | Pick a sample line from the active pool |\n| `/vibe reload` | Re-read settings + vibe file from disk |\n| `/vibe vibe:\u003cname\u003e` | Switch active vibe |\n| `/vibe indicator:\u003cpreset\u003e` | `default` \\| `dots` \\| `line` \\| `pulse` \\| `braille` \\| `arrow` \\| `custom` |\n| `/vibe color:\u003ctoken\u003e` | Theme color for spinner (e.g. `accent`, `primary`, `dim`) |\n| `/vibe rotate:\u003cms\u003e` | Message rotation interval (`0` = static) |\n| `/vibe interval:\u003cms\u003e` | Spinner frame interval |\n\n### Switching themes\n\n```\n/vibe vibe:startrek     # Back to Starfleet\n/vibe vibe:klingon      # Qapla'! — Klingon with translations\n/vibe vibe:dadjokes     # Hi Hungry, I'm Dad...\n/vibe vibe:bbs          # NO CARRIER...\n/vibe vibe:mafia        # Bundled with the extension\n/vibe off               # Disable vibes\n```\n\nUser files in `~/.pi/agent/vibes/` override bundled files of the same name, so you can fork `startrek.txt` without losing package updates.\n\n### Settings reference\n\n| Key | Type | Default | Effect |\n|-----|------|---------|--------|\n| `workingVibe` | boolean | `true` | Master switch |\n| `workingVibeName` | string | `\"mafia\"` | Vibe file name (no `.txt`) |\n| `workingVibeRotateMs` | number | `3500` | Rotation interval; `0` = static. Floor 750ms |\n| `workingIndicator` | enum | `\"default\"` | Spinner preset |\n| `workingIndicatorColor` | string | `\"accent\"` | Theme color token |\n| `workingIndicatorFrames` | string[] | `[]` | Custom frames (when `workingIndicator: \"custom\"`) |\n| `workingIndicatorIntervalMs` | number | `90` | Spinner frame interval. Floor 40ms |\n\n## Notifications\n\n[pi-alert](https://github.com/maxpetretta/pi-alert) sends a system notification when the agent finishes its turn. Notifications fire automatically after every prompt — no configuration needed.\n\n**Notification body** shows an activity summary with elapsed time, prioritizing the most useful signal from the completed run: updated files → other tool calls → read files → generic completion fallback. **Title** uses the project root directory name (e.g. `pi — pi-dev-config`).\n\n### Delivery\n\nTerminal-native notifications when running in a supported terminal:\n\n| Terminal | Protocol |\n|----------|----------|\n| Ghostty | OSC 777 |\n| iTerm2 | OSC 9 |\n| WezTerm | OSC 777 |\n| Kitty | OSC 99 |\n| rxvt-unicode | OSC 777 |\n| tmux | Passthrough to outer terminal |\n\nWhen no terminal-native transport is available, pi-alert falls back to the OS:\n\n| OS | Fallback |\n|----|----------|\n| macOS | `osascript` with native notification + `Glass` sound |\n| Linux | `notify-send` (install `libnotify-bin` if missing) |\n| Windows | PowerShell `NotifyIcon` balloon notification |\n| Final resort | Terminal bell (`BEL`) |\n\n## Ghostty\n\nTerminal configuration for development with pi.\n\n| File | Description |\n|---------|-----------|\n| `ghostty/config.ghostty` | GitHub Dark theme, JetBrains Mono 12px, blinking bar cursor, padding 8x4, shell integration |\n| `ghostty/SSH_NERD_FONT.md` | Guide for Nerd Font icons to work over SSH (Ghostty → VPS) |\n\nTo enable Nerd Font icons in the status line over SSH, add `TERM_PROGRAM TERM_PROGRAM_VERSION` to the sshd `AcceptEnv` on the VPS — see `ghostty/SSH_NERD_FONT.md`.\n\n```bash\ncp ~/dev/pi-dev-config/ghostty/config.ghostty ~/.config/ghostty/config.ghostty\n```\n\nRestart Ghostty completely after copying.\n\n## Context \u0026 Rules\n\nPi loads two kinds of instruction files at startup:\n\n| File | Scope | Purpose |\n|------|-------|---------|\n| `APPEND_SYSTEM.md` | Global (`~/.pi/agent/`) | Extends the **system prompt** — behavioral rules and conventions that apply to every session (code style, testing, logging, etc.). Appended without replacing the native prompt. |\n| `AGENTS.md` | Per-project | Project-level **context** — stack, conventions, build commands, and local rules. Pi concatenates all `AGENTS.md` found from `cwd` up through parent directories plus `~/.pi/agent/`. |\n\nThis repo ships a reusable `APPEND_SYSTEM.md` with language-agnostic coding rules. Copy it once to your global config. For project-specific instructions, create `AGENTS.md` at the project root — no example is included because it should be customized per project (tech stack, build commands, team conventions).\n\n### AGENTS.md best practices\n\nSee `docs/research/AGENTS.md-analysis-20260529.md` for a comprehensive research report (14 sources, 6 core areas). Key takeaways:\n\n- **6 core areas** every AGENTS.md should cover: Commands, Testing, Project Structure, Code Style, Git Workflow, Boundaries.\n- **Commands at the top** with exact flags, copy-pasteable — highest-ROI section.\n- **Boundaries with 3 levels** (Always / Ask first / Never) — single most effective constraint pattern.\n- **Code examples over descriptions** — one real snippet beats three paragraphs.\n- **≤150–180 lines is the sweet spot** — every extra line consumes context tokens.\n- **No changelog or human documentation** — AGENTS.md is a runtime instruction set; README.md is for humans.\n\n## CI \u0026 Validation\n\n[`.github/workflows/ci.yml`](.github/workflows/ci.yml) runs on every push, PR, and `v*.*.*` tag.\n\n- **`validate` job** — runs [`validate.py`](validate.py) on every change. Validates that all JSON, TOML, and Markdown files in the repo parse correctly and that `settings.json` has the required keys (`packages`, `defaultProvider`, `defaultModel`, `enabledModels`).\n- **`release` job** — fires only on `v*.*.*` tags. Categorizes the commits since the previous tag into Added (`feat`), Fixed (`fix`), and Changed (`chore`/`docs`/`ci`/`refactor`/`style`/`test`/`perf`/`revert`/`build`), and creates a GitHub release with auto-generated notes.\n\nRun `validate.py` locally before pushing:\n\n```bash\npython3 validate.py\n```\n\nSee [`docs/ci-auto-release-guide.md`](docs/ci-auto-release-guide.md) for the full release workflow.\n\n## Repository Structure\n\n```\npi-dev-config/\n├── APPEND_SYSTEM.md               # Global system-prompt rules and conventions\n├── settings.json                  # Pre-configured pi settings (Ollama Cloud provider)\n├── validate.py                    # Local pre-push validator (JSON/TOML/Markdown)\n├── VERSION                        # Current release version (single source of truth)\n├── assets/                        # Static assets (images, etc.)\n├── .github/\n│   └── workflows/\n│       └── ci.yml                 # CI: validate on push/PR, auto-release on tags\n├── docs/\n│   ├── ci-auto-release-guide.md         # Full release workflow guide\n│   ├── DESIGN.md                        # Cal.com design system analysis (Dembrandt)\n│   ├── PI_DEV_CHEATSHEET_EN.md          # Practical workflow guide (EN)\n│   ├── streamlit_pro_tips.md            # 25+ Streamlit PRO tips from official video\n│   ├── streamlit_extras_guide.md        # streamlit-extras complete reference guide\n│   └── research/\n│       └── AGENTS.md-analysis-20260529.md  # AGENTS.md industry standard research (14 sources)\n├── ghostty/\n│   ├── config.ghostty             # GitHub Dark, JetBrains Mono, shell integration\n│   └── SSH_NERD_FONT.md           # Nerd Font icons over SSH guide\n├── vibes/\n│   ├── startrek.txt               # Startrek: 99 phrases\n│   ├── klingon.txt                # Klingon + translations: 26 phrases\n│   ├── dadjokes.txt               # Dad jokes: 200+ phrases\n│   └── bbs.txt                    # BBS taglines 90s: 52 phrases\n└── README.md                      # This file\n```\n\n## Troubleshooting\n\n### `auto-update off` in the status bar\n\nThis is the status of `pi-extension-manager`. It means automatic package update checking is disabled. To enable:\n\n```\n/extensions auto-update daily\n```\n\nOther intervals: `weekly`, `1h`, `6h`, `3d`, `2w`, `1mo`, or run `/extensions auto-update` for the interactive wizard.\n\n### `nemotron-3-ultra`: past incident and re-test plan\n\n- **2026-06-04 (first deploy):** Nemotron-3-ultra was deployed as `worker` + `researcher`. It burned ~20M tokens across 29 requests and drained the Pro quota. Ollama Cloud subsequently reset session and weekly usage counters (observed same day), suggesting a **provider-side** fix for a runaway thinking loop.\n- **2026-06-04 (re-deploy attempt):** Re-deployed after the Ollama Cloud reset. The runaway recurred. Nemotron-3-ultra was removed from `enabledModels`; `worker` + `researcher` reverted to M3.\n- **Re-test target: 2026-06-11** (one week after the second removal). To re-enable for testing, set the following in `agentOverrides` and add `\"nemotron-3-ultra\"` back to `enabledModels`:\n\n  ```json\n  \"worker\":     { \"model\": \"nemotron-3-ultra\", \"thinking\": \"high\" },\n  \"researcher\": { \"model\": \"nemotron-3-ultra\", \"thinking\": \"high\" }\n  ```\n\n  **If the runaway recurs on the re-test:** pull nemotron again and push the re-test target by another week. The trigger is a single request burning \u003e1M tokens, or Pro quota dropping by more than 10% in one worker run.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocg1701%2Fpi-dev-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdocg1701%2Fpi-dev-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdocg1701%2Fpi-dev-config/lists"}