AGENTS / GITHUB / agent-config
githubinferredactive

agent-config

provenance:github:junghan0611/agent-config

Contextual continuity infrastructure for AI coding agents — semantic memory across sessions and org-mode knowledge bases. Pi extension + Gemini Embedding 2 + LanceDB.

View Source ↗First seen 5mo agoNot yet hireable
README
# agent-config

**Profile Harness — the gravity center where alien intelligences resonate with a being.**

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**.

Claude, 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/).

agent-config implements that gravity center. The shared foundation where agents remember, search, and stay aligned.

> Part of the [-config ecosystem](#the--config-ecosystem) by [glg @junghan0611](https://github.com/junghan0611)

### Harness Support

| Harness | Memory | Skills | Config |
|---------|--------|--------|--------|
| **[pi](https://github.com/badlogic/pi-mono)** | andenken **extension** (native `registerTool`, in-process LanceDB) | 26 skills (semantic-memory excluded — extension covers it) | extensions + themes + keybindings |
| **Claude Code** | andenken **skill** (CLI wrapper via bash) | 27 skills (full set including semantic-memory) | CLAUDE.md + hooks |
| **OpenCode** | andenken **skill** (CLI wrapper via bash) | 27 skills (full set) | settings |
| **OpenClaw** (Oracle VM) | andenken **skill** (same skills/ via symlink mount) | 27 skills (Nix store mount in Docker) | openclaw.json |

Session JSONL from all harnesses flows into [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 harnesses.

## What's Here

### Semantic Memory → [andenken](https://github.com/junghan0611/andenken)

Semantic memory has graduated to its own repo: **[andenken](https://github.com/junghan0611/andenken)** — "recollective thinking" (Heidegger).

| Tool | DB | Dims | Purpose |
|------|-----|------|---------|
| `session_search` | sessions.lance | 768d | Past pi + Claude Code conversations |
| `knowledge_search` | org.lance (707MB) | 768d | Org-mode knowledge base (3,300+ Denote notes) |

Agents call these autonomously. Ask "보편 학문 관련 노트 찾아줘" and `knowledge_search` fires with dictcli query expansion — finding `universalism`-tagged notes without being told the English word.

**3-Layer Cross-Lingual Search:**

| Layer | Mechanism | Example |
|-------|-----------|---------|
| **1. Embedding** | Gemini multilingual vectors | "보편" ≈ "universalism" |
| **2. dblock** | Denote regex link graph | 22 notes linked in meta-note |
| **1.5 BM25** | Korean josa removal (dual emit) | "위임의" → "위임" + "위임의" (BM25 both) |
| **3. dictcli** | Personal vocabulary graph (2,400+ triples) | `expand("보편")` → `[universal, universalism, paideia]` |

Pi loads andenken as a **compiled pi package** (`pi install`), not a symlinked `.ts` file. This bypasses jiti parsing limitations and allows direct LanceDB access in-process. Claude Code and OpenCode use the CLI wrapper skill instead.

### Pi Extensions ([`pi-extensions/`](pi-extensions/))

| Extension | Purpose |
|-----------|---------|
| `env-loader.ts` | Load ~/.env.local at session start |
| `context.ts` | /context command — show loaded extensions, skills, context usage |
| `go-to-bed.ts` | Late night reminder |
| `peon-ping.ts` | Sound notifications |
| `gemini-image-gen.ts` | Gemini image generation (나노바나나 2flash) |
| `delegate.ts` | Spawn independent agent process (local or SSH remote) |
| `session-breakdown.ts` | Session cost breakdown |
| `whimsical.ts` | Personality touches |

Semantic memory extension lives in [andenken](https://github.com/junghan0611/andenken) (separate repo, loaded as pi package).
Telegram bridge lives in [entwurf](https://github.com/junghan0611/entwurf) (separate repo, loaded as pi package).

### Skills ([`skills/`](skills/)) — 27 skills

| Category | Skills |
|----------|--------|
| **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 |
| **Web/Media** | brave-search, browser-tools, youtube-transcript, medium-extractor, summarize, transcribe |
| **Tools** | emacs, tmux, diskspace |

**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: <100 lines, <4KB. Like LSP autocomplete: see the signature, call immediately.

### Pi Config ([`pi/`](pi/))

| File | Purpose |
|------|---------|
| `settings.json` | Default model, theme, thinking level |
| `keybindings.json` | Custom keybindings |

### Themes ([`pi-themes/`](pi-themes/))

1 theme: glg-dark (custom, Ghostty Dracula compatible).

### Commands ([`commands/`](commands/))

| Command | Purpose |
|---------|---------|
| `/recap` | Quick recap of previous session |
| `/pandoc-html` | Markdown/Org → Google Docs HTML/DOCX |

## Session Management — No Compact

**We don't use compact.** Compact = AI reads entire conversation and summarizes = expensive + slow.

Instead:
1. When conversation gets long, `/new` to start fresh
2. `/new` auto-indexes current session + recent 24h sessions
3. In new session, recover context:
   - `session-recap -p <repo> -m 15` → 4KB summary (instant)
   - `session_search` → semantic search (all sessions)
   - `knowledge_search` → org knowledge base (3-layer expansion)

## Shell Aliases (`~/.bashrc.local`)

```bash
# Claude Code + 텔레그램
alias claude-tg='claude --channels plugin:telegram@claude-plugins-official'
alias claude-tgd='claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions'

# pi: --session-control 기본 (delegate 비동기 알림 + 세션 간 RPC)
alias pi='command pi --session-control'
# 분신 에이전트: 텔레그램 브릿지 (entwurf 패키지 설치 필요)
alias pi-home='command pi --session-control --telegram'
```

## One-Command Setup

```bash
git clone https://github.com/junghan0611/agent-config.git
cd agent-config
./run.sh setup    # clone repos + build CLIs + symlink everything + npm install
./run.sh env      # verify: system, API keys, links, binaries, memory index
```

`./run.sh setup` does:
- Clone source repos (if missing) — including andenken
- Build 6 native CLI binaries (Go + GraalVM)
- Symlink: pi extensions + skills (semantic-memory excluded) + themes + settings + keybindings
- Install: andenken as pi package (compiled extension)
- Symlink: Claude Code + OpenCode skills (full set including semantic-memory) + prompts
- Symlink: ~/.local/bin PATH binaries
- npm install for extensions and skills

## The -config Ecosystem

| Repo | Layer | Description |
|------|-------|-------------|
| [nixos-config](https://github.com/junghan0611/nixos-config) | OS | NixOS flakes, hardware, services |
| [doomemacs-config](https://github.com/junghan0611/doomemacs-config) | Editor | Doom Emacs, org-mode, denote |
| [zotero-config](https://github.com/junghan0611/zotero-config) | Bibliography | 8,000+ references, bibcli |
| **[agent-config](https://github.com/junghan0611/agent-config)** | **Agent infra** | **Extensions, skills, themes, settings** |
| **[andenken](https://github.com/junghan0611/andenken)** | **Memory** | **Semantic memory — sessions + org knowledge base** |
| **[entwurf](https://github.com/junghan0611/entwurf)** | **Presence** | **Telegram bridge — 분신 에이전트 원격 접근** |
| [memex-kb](https://github.com/junghan0611/memex-kb) | Knowledge | Legacy document conversion pipeline |
| [GLG-Mono](https://github.com/junghan0611/GLG-Mono) | Orchestration | OpenClaw bot configurations |
| [geworfen](https://github.com/junghan0611/geworfen) | Being | Existence data viewer — WebTUI agenda |

### Skill Source Repos

| CLI | Rep

[truncated…]

PUBLIC HISTORY

First discoveredApr 1, 2026

IDENTITY

inferred

Identity inferred from code signals. No PROVENANCE.yml found.

Is this yours? Claim it →

METADATA

platformgithub
first seenNov 14, 2025
last updatedMar 31, 2026
last crawled9 days ago
version

README BADGE

Add to your README:

![Provenance](https://getprovenance.dev/api/badge?id=provenance:github:junghan0611/agent-config)