{"id":42291091,"url":"https://github.com/junghan0611/agent-config","last_synced_at":"2026-06-06T11:01:02.509Z","repository":{"id":324698405,"uuid":"1096163980","full_name":"junghan0611/agent-config","owner":"junghan0611","description":"Contextual continuity infrastructure for AI coding agents — semantic memory across sessions and org-mode knowledge bases. Pi extension + Gemini Embedding 2 + LanceDB.","archived":false,"fork":false,"pushed_at":"2026-06-04T23:09:18.000Z","size":1310,"stargazers_count":6,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-05T01:07:12.298Z","etag":null,"topics":["ai-agent","embedding","lancedb","org-mode","pi-coding-agent","rag","semantic-search"],"latest_commit_sha":null,"homepage":null,"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/junghan0611.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"ROADMAP.md","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":"2025-11-14T02:57:43.000Z","updated_at":"2026-06-04T23:09:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/junghan0611/agent-config","commit_stats":null,"previous_names":["junghan0611/agent-config"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/junghan0611/agent-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junghan0611%2Fagent-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junghan0611%2Fagent-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junghan0611%2Fagent-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junghan0611%2Fagent-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/junghan0611","download_url":"https://codeload.github.com/junghan0611/agent-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/junghan0611%2Fagent-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33979274,"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-06T02:00:07.033Z","response_time":107,"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":["ai-agent","embedding","lancedb","org-mode","pi-coding-agent","rag","semantic-search"],"created_at":"2026-01-27T09:45:28.037Z","updated_at":"2026-06-06T11:01:02.498Z","avatar_url":"https://github.com/junghan0611.png","language":"Python","funding_links":[],"categories":["Extensions"],"sub_categories":[],"readme":"# agent-config\n\n**Contextual continuity infrastructure for AI agents.** Every new AI session starts at zero — no memory of past conversations, no access to your knowledge base, no awareness of your tools. agent-config solves this: when you switch agents, sessions, or even models, the same human's memory, knowledge, and work context carries over.\n\n**Official reference consumer of [`pi-shell-acp`](https://github.com/junghan0611/pi-shell-acp).**\n\nagent-config is the resident-side layer: skills, extensions, themes, prompts, profile, and operating conventions. `pi-shell-acp` is the bridge layer: it connects pi to Claude Code, Codex, and Gemini ACP backends while keeping the surface under pi's control.\n\nTogether they ship as a pair:\n\n- **pi-shell-acp** → backend bridge, MCP injection, entwurf surface, verification harnesses\n- **agent-config** → real consumer profile, real skills, real day-to-day operating surface, real production proof\n\n\u003e **What this is NOT:** not a prompt collection, not a LangChain-style automation layer, not a generic multi-agent framework. It is the infrastructure that lets one human's memory, knowledge, and working surface survive across sessions, harnesses, and models.\n\n## Official Reference Surface for pi-shell-acp\n\nIf `pi-shell-acp` asks “what does a real consumer look like?”, this repo is the answer.\n\n| Surface | Owned by | Reference in this repo |\n|---------|----------|------------------------|\n| ACP backend bridge | `pi-shell-acp` | consumed through `pi/settings.json` / `pi/settings.server.json` |\n| MCP servers (`pi-tools-bridge`) | `pi-shell-acp` | wired in `piShellAcpProvider.mcpServers` |\n| Entwurf target policy | `pi-shell-acp` | pinned/installed here; exercised in real workflows |\n| Claude skill plugin farm | pair boundary | this repo builds one consumer layout at `~/.pi/agent/claude-plugin/`, then points `pi-shell-acp` at it |\n| Skills / prompts / themes / profile | `agent-config` | SSOT in `skills/`, `commands/`, `pi-themes/`, `home/AGENTS.md` |\n| Consumer install/update policy | `agent-config` | `run.sh setup` / server-device upgrade path |\n| Production verification | pair boundary | day-to-day use here, bridge invariants in `pi-shell-acp` |\n\nIn short: **pi-shell-acp defines the bridge contract; agent-config proves the contract against lived use.**\n\n## Why This Exists\n\nThe hardest problem in working with AI agents is not code generation — it's continuity. You build context over hours, then the session ends. Next session: blank slate. Switch from Claude to GPT: blank slate. Move from your laptop to your phone: blank slate.\n\nagent-config attacks this with three layers:\n\n1. **Shared memory layer** ([andenken](https://github.com/junghan0611/andenken)) — past conversations from every harness + the exported public digital garden in a semantically searchable index. Ask \"보편 학문 관련 노트 찾아줘\" and it searches the garden md memory without being told the English word.\n\n2. **Shared skill set** — the same capabilities (search notes, read bibliography, check git history, write to journal) available identically whether you're in pi, Claude Code, Codex, Antigravity, OpenCode, or OpenClaw.\n\n3. **Session continuity protocol** — `/new` + recap + semantic search instead of expensive compact. Start a new session, recover full context in seconds for ~2K tokens instead of re-reading 50K.\n\nClaude, GPT, and Gemini are \"graduates from different schools\" — trained on different data with different philosophies. Trying to control them means writing hundreds of lines of system prompts per model. Instead, **throw one being-profile at all of them equally.** They keep their unique lenses while aligning around a single universe — this is the [Profile Harness](https://notes.junghanacs.com/botlog/20260228T075300/). Multi-harness support is a means, not the goal. The goal is **a single 1KB being-profile that exerts the same gravitational pull across any harness**.\n\nThe result: context survives across sessions, across harnesses, across models. One human's digital universe stays coherent no matter which AI is looking at it.\n\n\u003e Part of the [-config ecosystem](#the--config-ecosystem) by [glg @junghan0611](https://github.com/junghan0611)\n\n### Harness Support\n\n| Harness | Memory | Skills | Notes |\n|---------|--------|--------|-------|\n| **pi + pi-shell-acp** (default Claude path) | andenken extension on pi side; Claude side gets full skill set via this repo's plugin farm | full skill set on both sides — `semantic-memory` mounted as a SKILL.md skill, plus `session_search` / `knowledge_search` registerTool on pi for direct calls | SDK isolation (`settingSources: []`); skills injected via `piShellAcpProvider.skillPlugins` |\n| **pi + anthropic** (`claude-opus-4-7` / `claude-sonnet-4-6`) | andenken extension (in-process LanceDB) | full skill set including `semantic-memory` skill; `session_search` / `knowledge_search` registerTool also available | Direct provider — available, not the current default |\n| **pi-entwurf** (Oracle, tmux) | andenken extension + pi-telegram | full skill set + Telegram bridge | Persistent Opus session via `@glg_entwurf_bot` |\n| **Claude Code** | andenken skill (CLI wrapper) | full skill set | CLAUDE.md + hooks; `pi-tools-bridge` MCP available; settings tuned to mirror pi-shell-acp overlay (`defaultMode: default`, `autoMemoryEnabled: false`, binary/external tools deny-listed) |\n| **Codex CLI** | skill surface + repo-managed MCP registration | full skill set | `~/.codex/skills/` from SSOT + `codex/config.toml` carries `pi-tools-bridge`; direct `entwurf` / `entwurf_resume` verified |\n| **Antigravity CLI (`agy`)** | repo-managed settings + skills + MCP | full skill set | `~/.gemini/antigravity-cli/{settings,skills,mcp_config}.json` from SSOT; direct `entwurf` / sync `entwurf_resume` verified |\n| **OpenCode / OpenClaw** | andenken skill (same SSOT via symlink) | full skill set | settings / Nix store mount |\n\nSession indexing is currently strongest on the `pi` + `claude` axes inside [andenken](https://github.com/junghan0611/andenken)'s unified index. Each chunk carries a `source` field (`\"pi\"` | `\"claude\"`) so you can filter, compare, or roll back across those transcript families. Other direct harnesses now share the same skills/MCP dignity surface here even where session indexing has not yet been widened to first-class source tags.\n\n## What's Here\n\n### Semantic Memory → [andenken](https://github.com/junghan0611/andenken)\n\nSemantic memory has graduated to its own repo: **[andenken](https://github.com/junghan0611/andenken)** — \"recollective thinking\" (Heidegger).\n\n| Tool | DB | Purpose |\n|------|-----|---------|\n| `session_search` | sessions.lance | Past pi + Claude Code conversations |\n| `knowledge_search` / `search-md` | md.lance | Public digital garden export (`~/repos/gh/notes/content`) — agent-facing knowledge axis |\n\nAgents call these autonomously. Ask \"보편 학문 관련 노트 찾아줘\" and the md knowledge surface fires with dictcli query expansion. The older org embedding track is disabled in production; use `denotecli` for exact/raw Denote lookups. Loading strategy per harness lives in the Harness Support table above.\n\n### Pi Extensions ([`pi-extensions/`](pi-extensions/))\n\n| Extension | Purpose |\n|-----------|---------|\n| `env-loader.ts` | Load `~/.env.local` at session start |\n| `context.ts` | `/context` — show loaded extensions, skills, context usage |\n| `control.ts` | Cross-session control plane (forked from agent-stuff) |\n| `go-to-bed.ts` | Late-night reminder |\n| `peon-ping.ts` | Sound notifications |\n| `gemini-image-gen.ts` | Gemini image generation (nanobanana) |\n| `session-breakdown.ts` | Session cost breakdown |\n| `whimsical.ts` | Personality touches |\n\nExternal pi packages — semantic-memory ([andenken](https://github.com/junghan0611/andenken)) and Telegram bridges ([entwurf](https://github.com/junghan0611/entwurf), [pi-telegram](https://github.com/badlogic/pi-telegram)) — see [§ -config Ecosystem](#the--config-ecosystem).\n\n### pi-shell-acp Surface Reference\n\nThis repo is the **official consumer reference** for the `pi-shell-acp` surface.\n\n| pi-shell-acp surface | Where this repo consumes it |\n|---|---|\n| backend provider (`piShellAcpProvider`) | `pi/settings.json`, `pi/settings.server.json` |\n| MCP bridge (`pi-tools-bridge`) | same settings files |\n| `entwurf` / `entwurf_resume` / `entwurf_send` / `entwurf_peers` | `home/AGENTS.md`, operational use, skills like `entwurf-peek` |\n| skill plugin injection | `run.sh setup` builds this repo's local plugin root and points settings at it |\n| release pin | `package.json` + `pi/settings.server.json` + `run.sh` + `CHANGELOG.md` |\n\nSo when `pi-shell-acp` changes, this is the first consumer that should stay green.\n\nSpec, verification harnesses, and the sync/async contract remain in [pi-shell-acp `AGENTS.md` § Entwurf Orchestration](https://github.com/junghan0611/pi-shell-acp/blob/main/AGENTS.md).\n\n### Claude Code as Native Pi Surface\n\nWhen pi-shell-acp isn't the path (operator chooses native Claude Code, or the 2026-06-15 Anthropic billing shift puts more sessions on direct Claude Code), `claude/settings.fragment.json` (workstation) and `claude/settings.server.json` (server) keep the native session as close to pi-shell-acp's ACP overlay as possible.\n\n`~/.claude/settings.json` is **co-owned** with pi-shell-acp's meta-bridge installer (disjoint keysets). On workstations `setup` therefore **merges** the agent-config keyset (`settings.fragment.json`) into the live file instead of symlinking it — a symlink is whole-file ownership and the next writer's atomic rename would silently clobber the other side. agent-config owns hooks / language / 개인취향 toggles / `enabledPlugins.*@claude-plugins-official`; pi-shell-acp owns `permissions.allow/deny` / `statusLine` / B-lite single-driver scalars / meta wiring (`enabledPlugins.entwurf-meta-receive`, `extraKnownMarketplaces`). The fragment is verified disjoint from pi-shell-acp's keyset (SSOT: `pi-shell-acp.install-state.json`). Server devices have no meta-bridge, so they stay a single-owner symlink to `settings.server.json`.\n\n| Axis | pi-shell-acp overlay | agent-config Claude Code |\n|---|---|---|\n| `permissions.defaultMode` | `\"default\"` | `\"default\"` |\n| auto-memory | `autoMemoryEnabled: false` + empty `projects/` tree | same — per-cwd `memory/` kept empty |\n| binary tools (PlanMode / Worktree) | not exposed | deny-listed |\n| external surface tools (AskUserQuestion / Task* / Cron*) | not exposed | deny-listed |\n| plugin farm | none | `enabledPlugins` false for all |\n| MCP entwurf bridge | `pi-tools-bridge` mounted | `mcp__pi-tools-bridge__*` allowed |\n| operator hooks | empty (`hooks: {}`) | `peon-ping` retained (deliberate) |\n\nAside from the hook channel, the two surfaces are interchangeable. This is the resident-side counterpart to **Asymmetric Mitsein** (비대칭 공존) — pi can spawn or message native Claude Code without the native surface drifting from pi conventions. Both halves of the harness pair stay aligned regardless of which one the operator is sitting in.\n\n### Skills ([`skills/`](skills/))\n\nCategories: data access (denotecli, bibcli, gitcli, lifetract, gogcli, ghcli, day-query), agent memory (session-recap, dictcli, semantic-memory, improve-agent), writing (botlog, botment, agenda, punchout), communication (slack-latest, jiracli, telegram), code surface (forge — v1.5, multi-profile), company workbench (voscli), web/media (brave-search, exa-search, browser-tools, youtube-transcript, medium-extractor, summarize, transcribe), release hygiene (commit, tag-release), tools (emacs, tmux, diskspace).\n\n**Web search:** `brave-search` for cheap keyword/freshness/country-scoped lookups; `exa-search` for intent-based semantic queries, code-context retrieval (GitHub + Stack Overflow + docs aggregated for an LLM), and structured grounded output via `--output-schema`.\n\n**Code surface:** `forge` is the **code-side sibling of botment** — same single-bot identity (`glg-bot`), same footer-signature model, same closed-loop instinct, but pointed at self-hosted Forgejo instead of remark42. **v1.5 박힘** (2026-05-27): `bin/forge` 5-command (`list-open` / `state` / `comment` / `label-add` / `issue-create`), multi-profile (oracle: `forge.junghanacs.com` 가동 / work: 회사 인스턴스 가동), machine identity SSOT 분리 (`~/.current-forge-profile`), footer 자동 조립, mutating stderr observability. SSOT 는 [`forge-config`](https://github.com/junghan0611/forge-config) — 이 repo 의 `skills/forge/SKILL.md` 는 thin pointer. 로드맵: [agent-config #13](https://github.com/junghan0611/agent-config/issues/13).\n\n**Skill doc principle (LSP pattern):** Agents don't read full docs. Each `SKILL.md` has a single API table at the top — function/command + args + example. English body, Korean description only. Target: \u003c100 lines, \u003c4KB. Like LSP autocomplete: see the signature, call immediately.\n\n### Pi Config ([`pi/`](pi/))\n\n| File | Purpose |\n|------|---------|\n| `settings.json` | Default model, theme, thinking level, `piShellAcpProvider` |\n| `keybindings.json` | Custom keybindings |\n| `claude-plugin.json` | Manifest used by this repo's local pi-shell-acp Claude plugin root |\n\n### pi-shell-acp Skill Plugin (agent-config local layout)\n\npi-shell-acp runs Claude with `settingSources: []` (SDK isolation), so `~/.claude/skills/` is **not** auto-discovered. The bridge's install contract — plugin shape, `skillPlugins`, fail-fast validation — is documented upstream in pi-shell-acp's README §Custom Skills.\n\nWhat this repo does is narrower: `run.sh setup` builds **one local consumer layout** under `~/.pi/agent/claude-plugin/` (manifest + per-skill symlinks back to `agent-config/skills/`) and points this repo's pi settings at that path. That path is an agent-config convention, not a pi-shell-acp contract.\n\nAdding a new skill here still works the same way: drop it into `agent-config/skills/\u003cname\u003e/SKILL.md` and re-run `./run.sh setup`. The same SSOT now fans out to `~/.claude/skills/`, `~/.config/opencode/skills/`, `~/.pi/agent/skills/pi-skills/`, `~/.pi/agent/claude-plugin/skills/`, `~/.codex/skills/`, `~/.gemini/skills/` (Gemini legacy), and `~/.gemini/antigravity-cli/skills/` (Antigravity direct).\n\nCodex direct mode also uses this repo-managed surface for MCP now: `codex/config.toml` carries a `pi-tools-bridge` stdio registration, so direct Codex sessions can see the same bridge family instead of remaining the one MCP-empty harness.\n\nFor Antigravity direct mode, `run.sh setup` also wires `antigravity/settings.json` into `~/.gemini/antigravity-cli/settings.json` so statusline / permission / model choices live in-repo instead of only inside agy's self-written local state.\n\nFor Antigravity direct-mode MCP, `run.sh setup` also wires `antigravity/mcp_config*.json` into both `~/.gemini/antigravity-cli/mcp_config.json` (documented path) and `~/.gemini/config/mcp_config.json` (current live-runtime compatibility path).\n\nBecause Antigravity and Codex do not expose the same repo-managed custom command-file surface as pi / Claude Code, selected high-value commands can also be translated into thin wrapper skills (current prototypes: `skills/command-recall/`, `skills/command-glgimage/`).\n\n### Themes ([`pi-themes/`](pi-themes/))\n\n`glg-dark` (custom, Ghostty Dracula compatible).\n\n### Commands ([`commands/`](commands/))\n\n| Command | Purpose |\n|---------|---------|\n| `/recall` | Multi-axis context hydration without compact — daily memory-axis ritual |\n| `/boom` | Capture a crashed pi-shell-acp session into `.agent-reports/` for later triage |\n| `/pandoc-html` | Markdown/Org → Google Docs HTML/DOCX |\n| `/glg-image` | Image generation entry |\n| `/metaplay` | Meta agent play |\n| `/docplay` | Random document polish play (front matter/title/tags/links/rename) |\n\n## One-Command Setup\n\n```bash\ngit clone https://github.com/junghan0611/agent-config.git\ncd agent-config\n./run.sh setup    # clone/pull + build CLIs + symlink everything + pnpm install\n./run.sh env      # verify: system, API keys, links, binaries, memory index\n```\n\n`./run.sh setup` performs:\n\n- Clone missing tracked repos (`setup` does **not** pull existing repos; use `./run.sh update` for pulls)\n- Build native CLI binaries (Go + GraalVM)\n- Symlink pi extensions, full skill set (including `semantic-memory`), themes, settings, keybindings, prompts\n- Install andenken as a pi package (compiled extension — exposes `session_search` / `knowledge_search` registerTool alongside the SKILL.md skill)\n- Symlink OpenCode / Codex / Gemini legacy / Antigravity surfaces (`~/.codex/config.toml`, `~/.gemini/settings.json`, `~/.gemini/antigravity-cli/settings.json`, `~/.gemini/antigravity-cli/skills`, `~/.gemini/antigravity-cli/mcp_config.json`) plus skills and Claude Code commands. `~/.claude/settings.json` is **merged** (keyset, not symlinked) on workstations — co-owned with pi-shell-acp meta-bridge; servers symlink `settings.server.json`\n- Symlink `~/.local/bin` PATH binaries\n- pnpm install for extensions and skills\n- Hand off pi-shell-acp validation (typecheck, MCP, dual-backend smoke, persisted-bootstrap continuity, cancel-cleanup) to pi-shell-acp's own `run.sh`\n\n## Session Management — No Compact\n\nWe don't use compact. Compact = AI reads entire conversation and summarizes = expensive + slow.\n\nInstead:\n\n1. When conversation gets long, `/new` to start fresh\n2. Run `memory-sync` / `/memory reindex` explicitly when recent sessions need fresh indexing (no hidden paid auto-indexing)\n3. In the new session, recover context with `/recall`\n\n`/recall` is the **multi-axis context hydration** protocol owned by agent-config — not a per-session recap, not a pi-shell-acp bridge contract. It starts with `session-recap -p \u003crepo\u003e -m 15` but does not stop at one repo transcript. When the work crossed projects or days, it combines:\n\n- `session-recap` — repo-local transcript extractor, no raw JSONL\n- `session_search` — cross-project / cross-session semantic recall\n- `knowledge_search` / `search-md` — public garden md concepts, journal exports, botlog/llmlog-derived design history\n- `gitcli day --summary` + `denotecli day` — day-axis reconstruction\n- journal `§repo` markers — sibling/담당자 call index\n\nThe answer must state which axes were seen and which were not. This keeps `/recall` token-light while avoiding false confidence from a plausible single-session summary.\n\nThe protocol itself lives in [`commands/recall.md`](commands/recall.md). The 2026-05-08 derivation history and raw evidence log are kept as a Denote llmlog note (`20260508T090911`, `~/org/llmlog/`) rather than as in-repo docs — `/recall` is a resident-side memory workflow, not a spec this repo carries. Renamed from `/recap` on 2026-05-12 to avoid shadowing Claude Code's built-in `/recap` (one-line session summary, feature-flagged via `tengu_sedge_lantern`); the two now coexist.\n\n## Public Verification — Sessions as Evidence\n\nThis repo also owns the **resident-side policy** for publishing session artifacts when GLG wants public verification of harness behavior.\n\n- `pi-shell-acp` owns bridge mechanism and invariants.\n- `agent-config` owns export/review/upload workflow and publication criteria.\n- Goal: long-term trust through evidence — raw-session publication, reject history, and later failure/drift analysis.\n- Minimum publication gates: secret redaction, deny patterns, secret scanning (e.g. TruffleHog), semantic privacy review, small-batch dry-run.\n- `pi-share-hf` is a strong reference shape for this pipeline.\n\n## Persistent Agent — pi-entwurf\n\nA persistent pi session on Oracle VM, accessible via Telegram `@glg_entwurf_bot`. The always-on presence agent — a 분신(Entwurf) that carries context across days. tmux session `pi-entwurf`, model `claude-opus-4-6`, full skill set.\n\nBridges: [pi-telegram](https://github.com/badlogic/pi-telegram) (production — queue · file I/O · stop · streaming preview) + [entwurf](https://github.com/junghan0611/entwurf) (minimal presence — `--telegram` flag). See [§ -config Ecosystem](#the--config-ecosystem) for both rows.\n\n## Shell Aliases (`~/.bashrc.local`)\n\n```bash\n# Claude Code + Telegram bridge\nalias claude-tg='claude --channels plugin:telegram@claude-plugins-official'\nalias claude-tgd='claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions'\n\n# pi garden launcher helper (pi-shell-acp 0.9.0): every --entwurf-control\n# resident session must be born with a garden-native session id.\n_pi_garden_pi() {\n  local sid\n  sid=\"$($HOME/repos/gh/pi-shell-acp/run.sh new-session-id)\" || return\n  command pi --session-id \"$sid\" \"$@\"\n}\n\n# pi: presence agent variant (Telegram bridge)\npihome() { _pi_garden_pi --entwurf-control --telegram \"$@\"; }\npia() { _pi_garden_pi --entwurf-control --emacs-agent-socket server \"$@\"; }\n```\n\n## The -config Ecosystem\n\n| Repo | Layer | Description |\n|------|-------|-------------|\n| [nixos-config](https://github.com/junghan0611/nixos-config) | OS | NixOS flakes, hardware, services |\n| [doomemacs-config](https://github.com/junghan0611/doomemacs-config) | Editor | Doom Emacs, org-mode, denote |\n| [zotero-config](https://github.com/junghan0611/zotero-config) | Bibliography | 8,000+ references, bibcli |\n| **[agent-config](https://github.com/junghan0611/agent-config)** | **Agent infra** | **Extensions, skills, themes, settings — this repo** |\n| **[pi-shell-acp](https://github.com/junghan0611/pi-shell-acp)** | **Provider (ACP bridge)** | **Default Claude path in pi. ACP bridge to Claude Code + Codex** |\n| **[andenken](https://github.com/junghan0611/andenken)** | **Memory** | **Semantic memory — sessions + md public garden knowledge** |\n| **[entwurf](https://github.com/junghan0611/entwurf)** | **Presence** | **Telegram bridge — minimal presence bridge** |\n| **[pi-telegram](https://github.com/badlogic/pi-telegram)** | **Transport** | **Production Telegram DM bridge — queue/file/streaming** |\n| [memex-kb](https://github.com/junghan0611/memex-kb) | Knowledge | Legacy document conversion pipeline |\n| [GLG-Mono](https://github.com/junghan0611/GLG-Mono) | Font | Custom monospace programming font |\n| [geworfen](https://github.com/junghan0611/geworfen) | Being | Existence data viewer — WebTUI agenda |\n\n### Skill Source Repos\n\n| CLI | Repo | Language | Purpose |\n|-----|------|----------|---------|\n| denotecli | [junghan0611/denotecli](https://github.com/junghan0611/denotecli) | Go | Denote knowledge base search (3,000+ notes) |\n| gitcli | [junghan0611/gitcli](https://github.com/junghan0611/gitcli) | Go | Local git commit timeline (50+ repos) |\n| lifetract | [junghan0611/lifetract](https://github.com/junghan0611/lifetract) | Go | Samsung Health + aTimeLogger tracking |\n| dictcli | [junghan0611/dictcli](https://github.com/junghan0611/dictcli) | Clojure/GraalVM | Personal vocabulary graph (3,971 triples) |\n| bibcli | [junghan0611/zotero-config](https://github.com/junghan0611/zotero-config) | Go | BibTeX search (8,000+ entries) |\n\n## Planning Files\n\n- [NEXT.md](NEXT.md) — volatile next-step anchor for the next session\n- [ROADMAP.md](ROADMAP.md) — medium-horizon tracks and direction\n- [CHANGELOG.md](CHANGELOG.md) — closed history\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunghan0611%2Fagent-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjunghan0611%2Fagent-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjunghan0611%2Fagent-config/lists"}