Coding & Developmentโœจgemini๐Ÿค–claude๐Ÿ’ฌgpt๐ŸŒuniversal

๐Ÿง  my-pi

pi ๊ธฐ๋ฐ˜ ๊ฐœ์ธ AI ์˜คํผ๋ ˆ์ดํŒ… ์‹œ์Šคํ…œ

Quick Start

Install this Skill

npx skills add Jonghakseo/my-pi
<div align="center">

[English](./README.en.md) | **ํ•œ๊ตญ์–ด**

# ๐Ÿง  my-pi

**[pi](https://github.com/mariozechner/pi-coding-agent) ๊ธฐ๋ฐ˜ ๊ฐœ์ธ AI ์˜คํผ๋ ˆ์ดํŒ… ์‹œ์Šคํ…œ**

*11๊ฐœ์˜ ์ „๋ฌธ ์—์ด์ „ํŠธ ยท 25๊ฐœ ์ด์ƒ์˜ ํ™•์žฅ ๊ธฐ๋Šฅ ยท ํ•œ ๊ฐœ๋ฐœ์ž์˜ ์ฃผ๊ด€์ ์ธ ์…‹์—…*

<br/>

`๐Ÿค– 11 ์—์ด์ „ํŠธ` &nbsp; `๐Ÿงฉ 25+ ํ™•์žฅ ๊ธฐ๋Šฅ` &nbsp; `๐ŸŽจ 7 ํ…Œ๋งˆ`

<br/>

> AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์„ค์ •์„ ํ•˜๋‚˜์˜ **์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋กœ์ ํŠธ**๋กœ ๋‹ค๋ฃฌ๋‹ค๋ฉด?
>
> ์ด ๋ ˆํฌ๊ฐ€ ๊ทธ ๋‹ต์ด๋‹ค โ€” ๋งค์ผ ์‹ค์‚ฌ์šฉํ•˜๋Š” ์„ค์ •์œผ๋กœ, pi๋ฅผ CLI ๋„๊ตฌ์—์„œ ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์œผ๋กœ ํ™•์žฅํ•œ๋‹ค. ์—ญํ• ๋ณ„ ์ „๋ฌธ ์—์ด์ „ํŠธ, ์•ˆ์ „ ์žฅ์น˜, ์„ธ๋ฐ€ํ•œ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊นŒ์ง€.

</div>

---

> [!WARNING]
> ์ด ๋ ˆํฌ๋Š” ๊ณ„์† ๋ฐ”๋€Œ๋Š” ๊ฐœ์ธ ์‹ค์‚ฌ์šฉ ์…‹์—…์ด๋ผ ๋ฌธ์„œ์™€ ์‹ค์ œ ์ƒํƒœ๊ฐ€ ์–ธ์ œ๋“  ์–ด๊ธ‹๋‚  ์ˆ˜ ์žˆ๋‹ค.
> ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด๋‚˜ ์„ค์ •์€ ํŠน์ • ์‹œ์ ์— ๋ถˆ์•ˆ์ •ํ•˜๊ฑฐ๋‚˜ ๊นจ์ ธ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.


## ๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜

<p align="center">
  <img src="./tmp/architecture.ko.svg" alt="์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜" width="800"/>
</p>

์‹œ์Šคํ…œ์€ **๋„ค ๊ฐœ์˜ ๋ ˆ์ด์–ด**๋กœ ๊ตฌ์„ฑ๋œ๋‹ค:

| ๋ ˆ์ด์–ด | ์—ญํ•  |
|---|---|
| **์‚ฌ์šฉ์ž / pi TUI** | ํ„ฐ๋ฏธ๋„ ๊ธฐ๋ฐ˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์ธํ„ฐํŽ˜์ด์Šค |
| **ํ™•์žฅ ๊ธฐ๋Šฅ** | 25๊ฐœ ์ด์ƒ์˜ TypeScript ํ”Œ๋Ÿฌ๊ทธ์ธ โ€” ์„œ๋ธŒ์—์ด์ „ํŠธ, ์Œ์„ฑ I/O, MCP ๋ธŒ๋ฆฟ์ง€, UI ์˜ค๋ฒ„๋ ˆ์ด, ์•ˆ์ „ ์žฅ์น˜ |
| **์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ผ** | ์—ญํ• ๊ณผ ๋ชจ๋ธ์ด ๋‹ค๋ฅธ 11๊ฐœ์˜ ์ „๋ฌธ ์—์ด์ „ํŠธ ์ •์˜ |
| **์ธํ”„๋ผ** | [claude-mcp-bridge](./extensions/claude-mcp-bridge/)๋ฅผ ํ†ตํ•œ MCP ๋„๊ตฌ ์—ฐ๋™ โ€” ๊ธฐ์กด Claude Code MCP ์„ค์ •์„ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉ (Jira, Slack, Gmail, Calendar, GA4, Figma, DB ๋“ฑ) |

---

## ๐Ÿค– ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ผ

<p align="center">
  <img src="./tmp/agents.ko.svg" alt="์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ผ" width="800"/>
</p>

ํ˜„์žฌ ๊ธฐ์ค€ 11๊ฐœ์˜ ์—์ด์ „ํŠธ ์ •์˜, 3๊ฐœ์˜ ๋ชจ๋ธ, ํ•˜๋‚˜์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค:

| ์—์ด์ „ํŠธ | ๋ชจ๋ธ | ์—ญํ•  | ์‚ฌ์šฉ ์‹œ์  |
|---|---|---|---|
| ๐Ÿ” **finder** | `anthropic/claude-sonnet-4-6` | ๋น ๋ฅธ ํŒŒ์ผยท์ฝ”๋“œ ํƒ์ƒ‰ | ๋น ๋ฅธ ์กฐํšŒ, grep ์Šคํƒ€์ผ ํƒ์ƒ‰ |
| โšก **worker** | `openai-codex/gpt-5.4` | ๋ฒ”์šฉ ์ž‘์—… ์‹คํ–‰๊ธฐ | ๊ตฌํ˜„, ์ž‘์„ฑ, ์ˆ˜์ • (๋ณต์žกํ•œ ๋‹ค์ค‘ ํŒŒ์ผ) |
| ๐Ÿ“ **planner** | `anthropic/claude-opus-4-6` | ๊ตฌํ˜„ ์„ค๊ณ„์ž | ๋ณต์žกํ•œ ์ž‘์—… ๋ถ„ํ•  |
| โœจ **simplifier** | `anthropic/claude-sonnet-4-6` | ์ฝ”๋“œ ๋‹จ์ˆœํ™” ์ „๋ฌธ๊ฐ€ | ์ตœ๊ทผ ์ˆ˜์ • ์ฝ”๋“œ ์ •๋ฆฌ, ๊ฐ€๋…์„ฑ ๊ฐœ์„ , ๋™์ž‘ ๋ณด์กด ๋ฆฌํŒฉํ„ฐ๋ง |
| ๐Ÿงน **code-cleaner** | `openai-codex/gpt-5.4` | ์ฝ”๋“œ ์ •๋ฆฌ ๋ถ„์„๊ฐ€ | ์ค‘๋ณต ์ œ๊ฑฐ ํ›„๋ณด, ํ’ˆ์งˆ ๋ฌธ์ œ ํƒ์ƒ‰ |
| ๐Ÿ”Ž **reviewer** | `openai-codex/gpt-5.4` | ์ฝ”๋“œ ๋ฆฌ๋ทฐ (P0โ€“P3 ์‹ฌ๊ฐ๋„) | PR ๋ฆฌ๋ทฐ, ํ’ˆ์งˆ ์ ๊ฒ€ |
| ๐ŸฅŠ **challenger** | `openai-codex/gpt-5.4` | ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์Šคํ„ฐ | ์‹คํ–‰ ์ „ ๊ณ„ํš ๊ฒ€์ฆ |
| โœ… **verifier** | `anthropic/claude-opus-4-6` | 3๋‹จ๊ณ„ ๊ทผ๊ฑฐ ๊ฒ€์ฆ | ์ฃผ์žฅ ํ™•์ธ, ์ •ํ™•์„ฑ ์ ๊ฒ€ |
| ๐Ÿ” **security-auditor** | `openai-codex/gpt-5.4` | ๋ณด์•ˆ ๊ฒ€ํ† ์ž | ์ทจ์•ฝ์  ์ค‘์‹ฌ ๋ฆฌ๋ทฐ |
| ๐ŸŒ **searcher** | `anthropic/claude-sonnet-4-6` | ๋ฆฌ์„œ์น˜ยท์›น ๊ฒ€์ƒ‰ | ๋ฌธ์„œ ํƒ์ƒ‰, ์กฐ์‚ฌ |
| ๐Ÿ–ฅ๏ธ **browser** | `openai-codex/gpt-5.4` | ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”ยทUI ํ…Œ์ŠคํŠธ | E2E ํ…Œ์ŠคํŠธ, ์‹œ๊ฐ ๊ฒ€์ฆ |

<details>
<summary><strong>๋ชจ๋ธ ์„ ํƒ ๊ธฐ์ค€</strong></summary>

- **openai-codex/gpt-5.4** โ€” ๋ฒ”์šฉ ์‹คํ–‰ยท๋ฆฌ๋ทฐ (๊ตฌํ˜„, ํ…Œ์ŠคํŠธ, ๋ฆฌ๋ทฐ, ๋ณด์•ˆ ๊ฒ€ํ† , ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”)
- **anthropic/claude-sonnet-4-6** โ€” ๋น ๋ฅธ ํƒ์ƒ‰ยท๋ฆฌ์„œ์น˜ (ํŒŒ์ผ ๊ฒ€์ƒ‰, ์›น ๋ฆฌ์„œ์น˜, ์ฝ”๋“œ ๋‹จ์ˆœํ™”)
- **anthropic/claude-opus-4-6** โ€” ๊นŠ์€ ์ถ”๋ก  ์ž‘์—… (์ „๋žต ์„ค๊ณ„, ๊ฒ€์ฆ)

์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ(๋ฉ”์ธ ์—์ด์ „ํŠธ)๋Š” `anthropic/claude-opus-4-6` ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ์œ„์ž„ ๊ฒฐ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

</details>

---

## ๐Ÿงฉ ํ™•์žฅ ๊ธฐ๋Šฅ

25๊ฐœ ์ด์ƒ์˜ ์ปค์Šคํ…€ TypeScript ํ™•์žฅ ์ค‘ ๋Œ€ํ‘œ ํ•ญ๋ชฉ๋“ค์„ ๋„๋ฉ”์ธ๋ณ„๋กœ ์ •๋ฆฌํ–ˆ๋‹ค:

### ์ฝ”์–ด ์‹œ์Šคํ…œ

| ํ™•์žฅ | ์„ค๋ช… |
|---|---|
| **subagent/** | ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์œ„์ž„ ์—”์ง„ โ€” ์„œ๋ธŒ `pi` ํ”„๋กœ์„ธ์Šค ์ƒ์„ฑ, below-editor ์ƒํƒœ ์œ„์ ฏ์œผ๋กœ ์‹คํ–‰ ๊ด€๋ฆฌ, ์ž๋™ follow-up/์ •๋ฆฌ |
| **claude-mcp-bridge/** | Claude Code์˜ MCP ์„œ๋ฒ„ ์„ค์ •์„ ๊ทธ๋Œ€๋กœ ์žฌ์‚ฌ์šฉ โ€” ์ค‘๋ณต ์„ค์ • ์ œ๋กœ |
| **cross-agent.ts** | `.claude/`, `.gemini/`, `.codex/` ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์—์ด์ „ํŠธ ์ •์˜ ๋กœ๋“œ |
| **dynamic-agents-md.ts** | ๋Ÿฐํƒ€์ž„์— AGENTS.md๋ฅผ ๋™์  ๋กœ๋“œํ•˜์—ฌ ํŽธ์ง‘ยท์“ฐ๊ธฐ ๋ฒ”์œ„ ์ œํ•œ ๊ฐ•์ œ |
| **escalate-tool.ts** | ์„œ๋ธŒ์—์ด์ „ํŠธ๊ฐ€ ๋งˆ์Šคํ„ฐ์—๊ฒŒ ์—์Šค์ปฌ๋ ˆ์ด์…˜ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ด๋Š” ๋„๊ตฌ |
| **claude-hooks-bridge.ts** | Claude Code์˜ ํ›…(hook) ์ด๋ฒคํŠธ๋ฅผ Pi ์„ธ์…˜์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ธŒ๋ฆฟ์ง€ |
| **memory-layer/** | ์„ธ์…˜ ๊ฐ„ ์˜์† ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ |

### UI / UX

| ํ™•์žฅ | ์„ค๋ช… |
|---|---|
| **footer.ts** | ๋ชจ๋ธ, git ๋ธŒ๋žœ์น˜, ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ๋Ÿ‰์„ ๋ณด์—ฌ์ฃผ๋Š” ์ปค์Šคํ…€ ํ‘ธํ„ฐ |
| **working-text.ts** | ์ฒ˜๋ฆฌ ์ค‘ ๊ฒฝ๊ณผ ์‹œ๊ฐ„๊ณผ ํ•จ๊ป˜ ํŒ ์ค‘์‹ฌ ์Šคํ”ผ๋„ˆ ํ…์ŠคํŠธ |
| **idle-screensaver.ts** | ์œ ํœด ์‹œ ํ„ฐ๋ฏธ๋„ ์Šคํฌ๋ฆฐ์„ธ์ด๋ฒ„ |
| **theme-cycler.ts** | `Ctrl+X`๋กœ ํ…Œ๋งˆ ์‹ค์‹œ๊ฐ„ ์ˆœํ™˜ |
| **diff-overlay.ts** | `/diff` โ€” ๋ถ„ํ•  ํ™”๋ฉด git diff ๋ทฐ์–ด ์˜ค๋ฒ„๋ ˆ์ด |
| **github-overlay.ts** | ํ„ฐ๋ฏธ๋„์—์„œ ๋ฐ”๋กœ GitHub PR ํ™•์ธ |
| **files.ts** | `/files` โ€” git ํŠธ๋ฆฌ ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ € + ์—ด๊ธฐ/ํŽธ์ง‘/diff ๋น ๋ฅธ ์•ก์…˜ |
| **fork-panel.ts** | `/fork-panel` โ€” ํ˜„์žฌ ์„ธ์…˜์„ ์ƒˆ Ghostty split panel๋กœ ํฌํฌ |
| **generative-ui/** | `visualize_read_me`, `show_widget` โ€” ๋„ค์ดํ‹ฐ๋ธŒ ์‹œ๊ฐํ™”/์œ„์ ฏ ๋ Œ๋”๋ง |
| **override-builtin-tools.ts** | ๋„๊ตฌ ์ถœ๋ ฅ ์ ‘๊ธฐ/ํŽผ์น˜๊ธฐ๋กœ ์„ธ์…˜ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ |

### ๊ฐœ๋ฐœ ๋„๊ตฌ

| ํ™•์žฅ | ์„ค๋ช… |
|---|---|
| **todo-write.ts** | ํ•  ์ผ ๊ด€๋ฆฌ โ€” `todo_write` ๋„๊ตฌ, ์˜์† ์ €์žฅ์†Œ, TUI ๋ Œ๋”๋ง |
| **auto-name.ts** | ์ฒซ ์‚ฌ์šฉ์ž ๋ฉ”์‹œ์ง€๋กœ ์„ธ์…˜ ์ด๋ฆ„ ์ž๋™ ๊ฐ์ง€ |
| **upload-image-url.ts** | GitHub CDN์œผ๋กœ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ ํ›„ ์ž„๋ฒ ๋”ฉ |
| **clipboard.ts** | OSC52 ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๋กœ ํด๋ฆฝ๋ณด๋“œ์— ํ…์ŠคํŠธ ๋ณต์‚ฌ |
| **ask-user-question.ts** | ์‚ฌ์ „ ์ •์˜ ์˜ต์…˜์„ ๊ฐ–์ถ˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์งˆ๋ฌธ ๋„๊ตฌ |
| **delayed-action.ts** | ์ง€์—ฐ ์‹คํ–‰ ์˜ˆ์•ฝ |
| **until.ts** | `/until`, `until_report` โ€” ์กฐ๊ฑด ์ถฉ์กฑ๊นŒ์ง€ ๋ฐ˜๋ณต ์‹คํ–‰ |
| **usage-analytics.ts** | `/analytics` โ€” ์„œ๋ธŒ์—์ด์ „ํŠธยท์Šคํ‚ฌ ์‚ฌ์šฉ ํ†ต๊ณ„ ์˜ค๋ฒ„๋ ˆ์ด |
| **archive-to-html.ts** | to-html ์Šคํ‚ฌ๋กœ ์ƒ์„ฑ๋œ HTML ํŒŒ์ผ์„ `~/Documents`์— ์ž๋™ ์•„์นด์ด๋ธŒ |

### ์•ˆ์ „ ์žฅ์น˜

| ํ™•์žฅ | ์„ค๋ช… |
|---|---|
| **command-typo-assist.ts** | ๋ช…๋ น์–ด ์˜คํƒ€๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋™ ์ˆ˜์ • ์ œ์•ˆ |

---

---

## ๐Ÿท๏ธ ์„ธ์…˜ ์ด๋ฆ„

`/name`์€ ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ์ด ์•„๋‹ˆ๋ผ **๋‚ด์žฅ ๋ช…๋ น**์ด๋‹ค.

```
/name <์„ธ์…˜ ์ด๋ฆ„>   # ์ด๋ฆ„ ์„ค์ •
/name               # ํ˜„์žฌ ์ด๋ฆ„ ํ™•์ธ
```

---

## ๐ŸŽจ ํ…Œ๋งˆ

ํ˜„์žฌ 7๊ฐœ ํ…Œ๋งˆ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, `Ctrl+X`๋กœ ์‹ค์‹œ๊ฐ„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค:

| ํ…Œ๋งˆ | ์Šคํƒ€์ผ |
|---|---|
| **nord** *(๊ธฐ๋ณธ)* | ๋ถ๊ทนํ’, ๊น”๋”ํ•œ ๋ธ”๋ฃจ์™€ ์„œ๋ฆฌ ํ†ค |
| **catppuccin-mocha** | ๋‹คํฌ ์ดˆ์ฝœ๋ฆฟ ์œ„์˜ ๋”ฐ๋œปํ•œ ํŒŒ์Šคํ…” |
| **darcula** | JetBrains ์Šคํƒ€์ผ์˜ ์ง„ํ•œ ๋‹คํฌ ํ†ค |
| **dracula** | ๋Œ€๋น„๊ฐ€ ์„ ๋ช…ํ•œ ํผํ”Œ ๊ณ„์—ด ๋‹คํฌ ํ…Œ๋งˆ |
| **gruvbox** | ๋ ˆํŠธ๋กœ ๋”ฐ๋œปํ•œ ํ†ค, ๋ˆˆ์ด ํŽธํ•œ |
| **midnight-ocean** | ๊นŠ์€ ๋ฐ”๋‹ค ๋ธ”๋ฃจ์™€ ํ‹ธ |
| **rose-pine** | ์ฐจ๋ถ„ํ•˜๊ณ  ์šฐ์•„ํ•œ ๋กœ์ฆˆ ํ†ค |

---

## โŒจ๏ธ ๋‹จ์ถ•ํ‚ค

| ํ‚ค | ๋™์ž‘ |
|---|---|
| `Ctrl+T` | ์‚ฌ๊ณ (thinking) ํ‘œ์‹œ ํ† ๊ธ€ |
| `Ctrl+X` | ํ…Œ๋งˆ ์ˆœํ™˜ |
| `Ctrl+Q` | ํ…Œ๋งˆ ์—ญ์ˆœ ์ˆœํ™˜ |
| `Ctrl+Shift+O` | ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ € ์—ด๊ธฐ |
| `Ctrl+Shift+F` | ์ตœ๊ทผ ํŒŒ์ผ ์ฐธ์กฐ๋ฅผ Finder์—์„œ ํ‘œ์‹œ |
| `Ctrl+Shift+R` | ์ตœ๊ทผ ํŒŒ์ผ ์ฐธ์กฐ Quick Look |


... (truncated)
Repository
4stars
0forks
View on GitHub
Details
DiscoveredApr 4, 2026
Last UpdatedApr 4, 2026
Quality Score
30/100
Tags