- 🧩 I build iOS apps and enjoy going deep on modularization and architecture
- 🛠️ When I need a tool, I build it myself — from developer CLIs to full products
- 🤖 I prototype fast with AI and turn ideas into shipped software
- ✍️ I like to write down and share what I learn along the way
Things I designed, built, and shipped on my own.
Static analysis tools that turn codebases — and database schemas — into a queryable dependency graph — dead code, cycles, impact analysis, layering rules, and architecture metrics as queries over one graph.
| Tool | Platform | Description |
|---|---|---|
| cartograph | Queryable dependency graph for Swift / iOS codebases, built on IndexStoreDB | |
| kartograph | Explainable dependency graphs and dead-code analysis for Kotlin / Android | |
| gartograph | Queryable dependency graph for Go codebases — cycles, dead code, and layer rules as queries | |
| rustograph | Queryable dependency graph for Rust / Cargo workspaces — cycles, dead code, and impact analysis as queries | |
| schemagraph | Dependency graphs for databases — catalogs and SQL bodies in, impact analysis, cycle detection, and architecture rules out |
Dart / Flutter & cross-language graphs · dartograph + isthmus — the Dart/Flutter engine and the joiner that links graphs across language boundaries, click to expand
| Tool | Platform | Description |
|---|---|---|
| dartograph | Evidence-backed dependency graph analysis for Dart / Flutter codebases | |
| isthmus | Joins the graphs above across language boundaries — catches Flutter MethodChannel calls (Dart ↔ Swift) that per-language tools miss; React Native support planned |
More tools · 12 more — for AI coding agents, iOS engineering, and data tooling, click to expand
🤖 For AI coding agents — deterministic, local, no LLM in the loop
| Tool | Platform | Description |
|---|---|---|
| joinery | The linker for agent skill stacks — extracts each skill's implicit CLI / MCP / client-feature dependencies, dry-fits them against your machine, locks and compiles per-agent configs | |
| riskgate | One YAML policy that decides what your coding agent may do — allow, prompt, or deny every tool call, portable across agent CLIs, zero dependencies | |
| yield-audit | Outcome accounting for AI coding agents: what survived, what it cost, what was wasted — includes an AI rework-rate lens for phantom productivity | |
| epitaph | A repo-scoped ledger of rejected agent attempts — structured tombstones for rolled-back patches, consulted before the next agent retries the same path | |
| agent2perfetto | Converts Claude Code session logs into Perfetto trace JSON — view agent sessions as timelines, tool slices, and context / cost counters | |
| packet-ask | Sends only a scrubbed packet — never the raw repo — to personal coding-subscription subagents for review and second opinions | |
| relay-continuity | Local, privacy-first continuity for AI-assisted work — evidence-backed resume context without storing code, chats, or telemetry | |
| understatus | A calm macOS statusline addon for Claude Code — live CPU, memory, battery, disk, network & AI-session info, with selectable themes |
📱 For iOS engineering
| Tool | Platform | Description |
|---|---|---|
| locus | Where every UI element lives in source — a static traceability map from iOS accessibility elements to Swift code; CLI + MCP server | |
| strictmigrate | Delegates a Swift 6 strict-concurrency migration to agents — the compiler is the judge, a journal is the single source of truth; spans the KMP boundary | |
| coroner | Local post-mortem triage for iOS telemetry (.ips + MetricKit) — symbolicate, cluster, version-journal, and expose it to coding agents over MCP |
🗄️ For data & infra
| Tool | Platform | Description |
|---|---|---|
| vecdiff | Diffs two embedding-index snapshots for vector-DB migrations and index audits — local, numpy-only, CI-gateable |
Tools for running AI coding agents safely and smoothly — sandboxing, policy gates, account switching, and shared knowledge.
| Tool | Platform | Description |
|---|---|---|
| agentbelt | Runs AI coding agents on macOS confined to one project directory — Seatbelt-enforced, kernel-tested | |
| exitzero | Offline policy and verification gates for AI-assisted coding teams | |
| multi-account-tool | Switches between multiple AI CLI accounts (Claude Code, Codex, Gemini/Antigravity) from one TUI — Keychain-backed with automatic rollback | |
| knowledger | Domain-scoped knowledge agreements for KBs, LLM wikis, and AI workflows — with a Hyperledger Fabric adapter |
Native macOS apps, built together with AI. Distributed at coden.kr.
| App | Description |
|---|---|
| Storage Medic | Find and clean up what's eating your disk space |
| Nits | Fine-tune display brightness and color temperature |
Side projects I've shipped · click to expand
| Service | Description |
|---|---|
| PickMeJobs | Job postings, aggregated in one place |
| Oneul Buffet | Map of buffets and company cafeterias |
| EVCar | EV charging station map |
| PyeonDeal | Convenience store deals and promotions |
| PolicyHanun | Government policies at a glance |
| Hansan | Real-time crowd density map of Seoul |
| Mosquito Index Map | Map of mosquito and pest activity |
| Observed | Real-time status monitoring for AI tools and infrastructure |





