promptbox

Tips & Tricks — zero to coding agent Tips & Tricks — 코딩 에이전트 0에서 시작하기

A step-by-step beginner tutorial: get a Z.ai key, install pi, synchronize cskwork/pi-setup-public, and use GLM-5.3-Flash for both code and images. Z.ai 키를 준비하고 pi를 설치한 뒤 cskwork/pi-setup-public 정본을 동기화해, GLM-5.3-Flash로 코드와 이미지를 함께 다루는 단계별 튜토리얼이다.

Default setup: pi + zai/glm-5.3-flash (1M context, native text + image input, thinking max). Prefer a different harness? The OpenCode 2 walkthrough is here. 기본 구성은 pi + zai/glm-5.3-flash(컨텍스트 100만, 네이티브 텍스트+이미지 입력, 사고 수준 max)다. 다른 하네스를 원하면 OpenCode 2 안내는 이쪽이다.

1-click

Let an agent do all of it 에이전트에게 통째로 시키기

macOS · Linux · Windows

Already have any coding agent running? Paste the prompt below. It installs pi or updates it to the latest release, clones or fast-forwards cskwork/pi-setup-public, runs its installer, and verifies GLM-5.3-Flash text and image capability. The repository is the source of truth; this page does not reimplement its package list. 이미 코딩 에이전트가 하나라도 돌고 있다면 아래 프롬프트를 붙여넣는다. pi가 없으면 설치하고 이미 있으면 최신 버전으로 업데이트한 뒤, cskwork/pi-setup-public을 클론하거나 fast-forward한 뒤 공식 설치기를 실행하고, GLM-5.3-Flash의 텍스트·이미지 입력을 검증한다. 패키지 목록을 이 페이지에 복제하지 않고 저장소를 정본으로 쓴다.

then paste it into your agent's chat 그대로 에이전트 채팅창에 붙여넣기
Read the prompt before you run it 돌리기 전에 프롬프트 읽어보기 ▸
Set up or refresh my default coding-agent environment from https://github.com/cskwork/pi-setup-public.
The default harness is pi. The default Z.ai model is GLM-5.3-Flash, which accepts text and images natively.

Work autonomously and make the process idempotent. Preserve user-owned files and settings unless the
pi-setup installer explicitly owns them. Never print credentials. Report real verification output.

1. Detect the operating system and shell.
   - Supported: macOS, Linux, and Windows.
   - On Windows, prefer PowerShell for bootstrap commands. pi itself uses Git Bash internally.

2. Ensure Node.js 22.19+ and npm are available.
   - First run `node -v` and `npm -v`.
   - If Node is missing or older than 22.19, use the platform package manager when available.
   - If no safe package manager is available, stop and tell me to install a supported Node.js LTS release from https://nodejs.org.

3. Install pi if missing, or update an existing pi installation to the latest release.
   - Record the current version with `pi --version` when available.
   - Read the published release and its Node.js requirement:
     `npm view @earendil-works/pi-coding-agent version engines --json`
     If the current Node.js version does not satisfy that requirement, upgrade Node.js before continuing.
   - Run this command for both a new installation and an existing installation:
     `npm install -g --ignore-scripts @earendil-works/pi-coding-agent@latest`
   - Re-run `pi --version` and compare it with the published release. Report the before/after versions;
     if they are equal, report that pi was already current. Do not call an unsuccessful update complete.
   - If the command is still missing, report the npm global prefix and ask me to open a new terminal.
     Do not patch PATH silently.

4. Clone or update pi-setup at `~/pi-setup-public`.
   - Canonical remote: `https://github.com/cskwork/pi-setup-public.git`.
   - If the directory is absent, clone it.
   - If it is a clean clone of that remote, run `git pull --ff-only`.
   - If it has local changes, do not discard them. Report the diff summary and continue with the local tree.
   - If the path exists but is not that repository, move it to a timestamped backup path before cloning.
   - Never use `git reset --hard`, `git clean`, or `rm -rf`.

5. Validate the checked-out setup before installing.
   - `models.json` must declare model id `glm-5.3-flash` with input types `text` and `image`.
   - The configured default model must be `glm-5.3-flash` on provider `zai`.
   - Confirm `skills/impeccable/SKILL.md` and its companion `reference/` and `scripts/` directories exist.
   - Confirm the bundled `skills/` directory does not contain `supergoal`, `superdesign`, `superoffice`,
     or `superhacker`; these are not part of the default onboarding installation.
   - If any check fails, stop installation and report that pi-setup is stale. Do not invent a local workaround.

6. Run the repository installer.
   - macOS/Linux/Git Bash: `~/pi-setup-public/install.sh`.
   - Windows PowerShell: run the documented Windows path from the repository README; do not translate the
     shell script by guessing.
   - The installer backs up replaced files and links or copies `~/.pi/agent` configuration from the repo.
   - Include the bundled Impeccable skill through this installer, with its companion files intact.
   - Do not separately install or update supergoal, superdesign, superoffice, or superhacker as part of
     onboarding. Do not uninstall user-owned copies already present in other agent environments.

7. Install the default system prompt and share it with every coding agent on this machine.
   - Canonical source: https://github.com/cskwork/THE-SYSTEM-PROMPT, file `AGENTS.md` on `main`.
   - Fetch the current source at execution time from:
     https://raw.githubusercontent.com/cskwork/THE-SYSTEM-PROMPT/main/AGENTS.md
     Download it to a temporary file first and check that the request succeeded and the file is nonempty.
     Use those exact bytes, without paraphrasing, merging in older rules, or substituting pi-setup's copy.
   - Keep the canonical local file at `~/.agents/AGENTS.md`. If an existing file differs, back it up to
     a timestamped path before replacing it with the validated download. Report the backup path.
     If the bytes already match, leave it unchanged.
   - Link the one file into each agent you use, and skip any directory whose agent is not installed:
     `ln -sfn ~/.agents/AGENTS.md ~/.claude/CLAUDE.md`
     `ln -sfn ~/.agents/AGENTS.md ~/.codex/AGENTS.md`
     `ln -sfn ~/.agents/AGENTS.md ~/.gemini/GEMINI.md`
     `ln -sfn ~/.agents/AGENTS.md ~/.config/opencode/AGENTS.md`
     `ln -sfn ~/.agents/AGENTS.md ~/.pi/agent/AGENTS.md`
   - The pi installer points `~/.pi/agent/AGENTS.md` at the pi-setup copy of the same contract. Relinking
     it here keeps one source of truth; the pi-setup copy stays a mirror.
   - If a target is an existing regular file rather than a symlink, move it to a timestamped backup first
     and report the path. Never overwrite my own instructions in place.
   - On Windows, symlinks need Developer Mode or an admin terminal. Copy the file instead and tell me the
     copy will drift.

8. Check authentication without exposing a key.
   - Run `pi auth check --provider zai`.
   - If it is not ready, tell me to run `pi auth`, log in to Z.ai, restart pi, and rerun this prompt.
   - Never ask me to paste an API key into chat.

9. Verify the installed setup with real commands.
   - `pi --version`
   - `pi auth check --provider zai`
   - `pi --list-models zai` and confirm `glm-5.3-flash` appears.
   - Parse `~/.pi/agent/models.json` and confirm `glm-5.3-flash` has both `text` and `image` inputs.
   - Compare `~/.agents/AGENTS.md` byte-for-byte with the GitHub download from step 7.
   - Resolve every operating-instruction link from step 7 and confirm each one points at
     `~/.agents/AGENTS.md`. For Windows copies, compare their contents with that canonical file.
   - Verify `~/.pi/agent/skills/impeccable/SKILL.md`, `reference/`, and `scripts/` resolve to the bundled
     skill installed in step 6. Report Impeccable as installed only when these checks pass.
   - `pi list` and report the installed package count.
   - If Z.ai auth is ready, run a text round trip:
     `pi -p "reply with exactly: PI-SETUP-OK" --no-session`
   - If a local image is available, run one native multimodal probe by asking GLM-5.3-Flash to read it.
     Do not install an image adapter if no image is available; report that the image probe was skipped.

10. Finish with a numbered report.
   - State the OS and shell.
   - State the Node.js version and the pi version before and after installation/update.
   - State whether pi-setup was cloned, updated, or already current.
   - State which agents now read the operating instructions, and which were skipped because they are absent.
   - State whether Z.ai authentication and text/image capability were verified or remain user actions.
   - State the backup path created by the installer, if any.
   - Do not commit or push either repository.

⚠ This prompt installs software and writes config files as your user account. Read it first — that is what the toggle above is for. It never prints your API key, never deletes a file, and merges into existing config instead of overwriting; if it cannot do a step it reports the step instead of guessing. Prefer to see each command yourself? Skip the button and follow STEP 0-11 by hand. ⚠ 이 프롬프트는 당신 계정 권한으로 소프트웨어를 설치하고 설정 파일을 쓴다. 먼저 읽어보라 — 위의 펼침이 그용도다. API 키를 출력하지 않고, 파일을 지우지 않으며, 기존 설정을 덮어쓰지 않고 합친다. 못 하는 단계는 추측하지 않고 그대로 보고한다. 명령을 하나씩 눈으로 확인하며 가고 싶다면 버튼 대신 아래 STEP 0-11을 손으로 따라가면 된다.

STEP 0

Prepare a Z.ai API key준비물 — Z.ai API 키

You need one Z.ai GLM key. Two ways to get it: 필요한 것은 딱 하나, Z.ai GLM 키다. 받는 방법은 두 가지다:

  • Shared key from this console (recommended): log in to the ZAI Plan Console → 「API 키 금고」 → tap 「관리자에게 키 열람 요청」. Once the admin approves, the key appears in the vault — press 열람 to copy it. 이 콘솔에서 공유받기(권장): ZAI Plan Console에 Google 로그인 → 「API 키 금고」 화면 → 「관리자에게 키 열람 요청」 버튼 누르기. 관리자가 승인하면 금고에 공유 키가 나타나고, 「열람」 버튼으로 복사할 수 있다.
  • Your own subscription: subscribe to the GLM Coding Plan at z.ai and issue an API key from your dashboard. 직접 구독: z.ai에서 GLM Coding Plan을 구독하고, 대시보드에서 API 키를 발급받는다.

⚠ Treat the key like a password. Never paste it in chats or screenshots. If it leaks, ask for rotation immediately. ⚠ 키는 비밀번호다. 채팅·스크린샷에 절대 붙여넣지 말고, 유출되면 즉시 관리자에게 회전(교체)을 요청하라.

STEP 1

Open the terminal터미널 열기

macOS: press ⌘+Space, type 터미널 (or Terminal), Enter. Windows: press the Start key, type PowerShell, Enter. macOS: ⌘+스페이스를 누르고 터미널(또는 Terminal) 입력 후 엔터. Windows: 시작 버튼 → PowerShell 검색 → 엔터. 이후 모든 명령은 이 창에 입력한다.

STEP 2

Check Node.js (v22+)Node.js 확인 (v22 이상)

pi itself and every pi package come through npm. Check Node first: pi 본체도, pi 패키지도 전부 npm을 거친다. 먼저 확인:

node -v # v22 이상이면 OK. 아무 출력이 없으면 아래로

If the version is older or the command is not found, install Node 22: 버전이 더 낮거나 명령이 없다고 나오면 Node 22을 설치한다:

# macOS (nvm 권장): curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash # 터미널 재시작 후: nvm install 22 && nvm use 22 # Windows: https://nodejs.org 에서 LTS 인스톨러 설치
STEP 3

Install pipi 설치

The npm package is @earendil-works/pi-coding-agent and the command it installs is pi. --ignore-scripts skips dependency lifecycle scripts — pi does not need them: npm 패키지 이름은 @earendil-works/pi-coding-agent이고, 설치되는 명령 이름은 pi다. --ignore-scripts는 의존성 설치 스크립트를 건너뛰는 옵션이며, pi는 그 스크립트가 필요 없다:

npm install -g --ignore-scripts @earendil-works/pi-coding-agent
# 인스톨러를 쓰고 싶다면 (macOS / Linux) curl -fsSL https://pi.dev/install.sh | sh
pi --version # 이 문서는 0.84.3에서 검증했다
STEP 4

Connect your Z.ai keyZ.ai 키 연결

Two routes. Inside pi, run /login and pick ZAI Coding Plan (Global) — the key is saved to ~/.pi/agent/auth.json under the zai entry and reused from then on. Or set the environment variable before launching: 두 가지 길이 있다. pi 안에서 /login을 실행하고 ZAI Coding Plan (Global)을 고르면 키가 ~/.pi/agent/auth.json의 zai 항목에 저장되고 다음부터 자동으로 쓰인다. 아니면 실행 전에 환경변수로 넣는다:

export ZAI_API_KEY=여기에_코딩플랜_키_붙여넣기 pi

Then confirm the subscription actually unlocked the models: 그다음 구독으로 모델이 실제로 열렸는지 확인한다:

pi auth check --provider zai # ready 가 나오면 연결된 것 pi --list-models zai # glm-5.3-flash 가 보이면 구독이 열린 것

The same /login screen also takes a Claude Pro/Max, ChatGPT Plus/Pro (Codex), or GitHub Copilot subscription, so one pi install can hold several providers side by side — this guide stays on the single GLM key. 같은 /login 화면에서 Claude Pro/Max, ChatGPT Plus/Pro(Codex), GitHub Copilot 구독도 붙일 수 있어서, pi 하나에 여러 공급자를 동시에 둘 수 있다. 이 문서는 GLM 키 하나만으로 진행한다.

STEP 5

Pin GLM-5.3-Flash as the default기본 모델을 GLM-5.3-Flash로 고정

pi reads ~/.pi/agent/settings.json. Pin the provider, the model, and the thinking level once so every new session starts there. The snippet merges into the existing file, so nothing already in it is lost: pi는 ~/.pi/agent/settings.json을 읽는다. 공급자·모델·사고 수준을 한 번 고정해 두면 새 세션이 항상 그 상태로 시작한다. 아래 스크립트는 기존 파일에 합치는 방식이라 이미 있는 값은 그대로 살아 있다:

python3 - <<'EOF' import json, os p = os.path.expanduser("~/.pi/agent/settings.json") cfg = json.load(open(p)) if os.path.exists(p) else {} # 이미 있으면 보존하고 합친다 cfg["defaultProvider"] = "zai" cfg["defaultModel"] = "glm-5.3-flash" cfg["defaultThinkingLevel"] = "max" os.makedirs(os.path.dirname(p), exist_ok=True) json.dump(cfg, open(p, "w"), indent=2, ensure_ascii=False) print("model ->", p) EOF
pi -p "reply with exactly: PI-ZAI-OK" # 기본 모델로 한 번 왕복
Model모델 Context컨텍스트 Use it for쓰임새
zai/glm-5.3-flash 1,000,000 Default. Native text + image input.기본값. 텍스트와 이미지를 직접 입력.
zai/glm-5.2 1,000,000 Previous generation.이전 세대 주력.
zai/glm-5-turbo 200,000 Cheap bulk work — search, summaries, boilerplate.값싼 대량 작업 — 검색·요약·정형 코드.
zai/glm-4.7 204,800 Older generation.구세대.

Switch mid-session with /model (or Ctrl+L). GLM-5.3-Flash maps low, high, and max; max is simply the top setting. 세션 도중 바꾸려면 /model(또는 Ctrl+L). GLM-5.3-Flash의 사고 수준은 low·high·max이고, max는 그 척도의 맨 위다.

STEP 6

Use native multimodal input네이티브 멀티모달 입력 쓰기

GLM-5.3-Flash is the first natively multimodal GLM-5 model. When pi's model declaration includes ["text", "image"], the normal read tool passes images directly to the active model. GLM-5.3-Flash는 GLM-5 계열 최초의 네이티브 멀티모달 모델이다. pi 모델 선언이 ["text", "image"]를 포함하면 기본 read 도구가 이미지를 활성 모델에 직접 넘긴다.

pi -p "read ./probe.png. 안의 글자와 도형을 그대로 알려줘" # 별도 비전 확장 없음

⚠ A multimodal model name alone is not enough: models.json must declare the image input. The default pi-setup repository does this for GLM-5.3-Flash. ⚠ 모델 이름만 멀티모달이어서는 부족하다. models.json이 이미지 입력을 선언해야 한다. 기본 pi-setup 저장소가 GLM-5.3-Flash에 이 선언을 제공한다.

STEP 7

The package set패키지 한 벌

pi ships deliberately bare — four tools: read, write, edit, bash. Everything else is a package you opt into. This is the exact set behind this site's default setup. pi install accepts one source per call, so this loops (verified — passing several at once errors with Unexpected argument): pi는 일부러 헐겁게 나온다 — 도구는 read·write·edit·bash 넷뿐이다. 나머지는 전부 직접 골라 붙이는 패키지다. 아래가 이 사이트 기본 구성의 실제 한 벌이다. pi install은 한 번에 하나씩만 받으므로 반복문을 쓴다(실측 — 여러 개를 한 줄에 넣으면 Unexpected argument 오류가 난다):

# pi install 은 한 번에 하나씩만 받는다 — 그래서 반복문으로 돌린다 for p in \ npm:pi-subagents \ npm:pi-lens \ npm:pi-web-access \ npm:context-mode \ npm:pi-mcp-adapter \ npm:pi-background-tasks \ npm:@gotgenes/pi-permission-system \ npm:@juicesharp/rpiv-todo \ npm:@juicesharp/rpiv-ask-user-question \ npm:@samfp/pi-memory \ npm:pi-markdown-preview \ npm:pi-powerline-footer \ npm:pi-simplify \ npm:@narumitw/pi-goal \ npm:@narumitw/pi-usage do pi install "$p" done pi list # 설치된 패키지 확인
Package패키지 What it adds무엇을 더하나
pi-subagentsChild agents — review, scouting, parallel audits, background jobs.자식 에이전트 — 리뷰·정찰·병렬 감사·백그라운드 작업.
pi-lensLSP diagnostics, symbol search, module outlines — code intelligence.LSP 진단·심볼 검색·모듈 개요 — 코드 이해 도구.
pi-web-accessWeb search and URL fetching.웹 검색과 URL 가져오기.
context-modeRuns code over big outputs in a sandbox so raw bytes never fill the context window.큰 출력을 샌드박스 안에서 코드로 처리해, 원문이 컨텍스트를 잡아먹지 않게 한다.
pi-mcp-adapterConnects MCP servers (the standard way agents attach external tools).MCP 서버 연결 — 에이전트가 외부 도구를 붙이는 표준 규약.
pi-background-tasksLong-running commands (test suites, dev servers) without blocking the session.테스트·개발 서버처럼 오래 도는 명령을 세션을 막지 않고 실행.
@gotgenes/pi-permission-systemallow / ask / deny gates over tools, bash, MCP, and paths. STEP 9 configures it.도구·bash·MCP·경로에 allow/ask/deny 관문. 설정은 STEP 9.
@juicesharp/rpiv-todoA task list the agent keeps across a multi-step job.여러 단계 작업 동안 에이전트가 유지하는 할 일 목록.
@juicesharp/rpiv-ask-user-questionLets the agent ask you structured multiple-choice questions mid-run.작업 도중 에이전트가 객관식으로 물어볼 수 있게 한다.
@samfp/pi-memoryPersistent facts, preferences, and lessons across sessions.세션을 넘어 남는 사실·선호·교훈 저장소.
pi-markdown-previewExport Markdown/LaTeX to PDF, HTML, or PNG.마크다운·LaTeX를 PDF·HTML·PNG로 내보내기.
pi-powerline-footerStatus footer: model, token usage, cost.하단 상태줄 — 모델·토큰 사용량·비용.
pi-simplifyTrims the built-in prompt surface.기본 프롬프트 표면을 줄인다.
@narumitw/pi-goal · pi-usageGoal tracking and usage/budget reporting.목표 추적과 사용량·예산 리포트.

⚠ pi packages run with your full local permissions — extensions are executable TypeScript and skills can direct the model to run commands. Install only what you can inspect. pi-subagents + pi-lens is already a useful minimal extension set. ⚠ pi 패키지는 당신의 로컬 권한으로 실행된다. 확장은 실제 TypeScript 코드이고, 스킬은 모델에게 명령 실행을 지시할 수 있다. 읽고 납득한 것만 설치하라. pi-subagents + pi-lens만으로도 쓸 만한 최소 확장 세트다.

STEP 8

Subagents — one model, six gates서브에이전트 — 모델 하나, 관문 여섯

With pi-subagents installed, the main agent can hand work to child agents that each start with a clean context. Pinning every gate to zai/glm-5.3-flash at thinking max keeps the whole pipeline on one subscription; skills define the role differences: pi-subagents를 깔면 주 에이전트가 깨끗한 컨텍스트의 자식 에이전트에게 일을 넘길 수 있다. 모든 관문을 zai/glm-5.3-flash · 사고 max로 고정하고, 역할 차이는 붙인 스킬로 만든다:

python3 - <<'EOF' import json, os p = os.path.expanduser("~/.pi/agent/settings.json") cfg = json.load(open(p)) if os.path.exists(p) else {} M = {"model": "zai/glm-5.3-flash", "thinking": "max"} # 6개 게이트 전부 Flash · thinking max gates = { "specifier": dict(M), "coder": dict(M, skills=["test-driven-development"]), "cleaner": dict(M), "sw-architect": dict(M), "hardender": dict(M, skills=["systematic-debugging", "verification-before-completion"]), "qa": dict(M, skills=["browser-qa", "verification-before-completion"]), # 아래는 모델은 그대로 두고 스킬만 붙이는 보조 에이전트 "qa-tester": {"skills": ["browser-qa", "agent-browser"]}, "qa-auditor": {"skills": ["browser-qa", "agent-browser"]}, "agent-browser":{"skills": ["browser-qa", "agent-browser", "playwright-cli"]}, "verify": {"skills": ["verify", "verification-before-completion"]}, "tester": {"skills": ["test-driven-development", "e2e-testing"]}, "debugger": {"skills": ["systematic-debugging"]}, } ov = cfg.setdefault("subagents", {}).setdefault("agentOverrides", {}) for name, conf in gates.items(): ov.setdefault(name, {}).update(conf) json.dump(cfg, open(p, "w"), indent=2, ensure_ascii=False) print("subagents ->", p) EOF

The six gates are specifier → coder → cleaner → sw-architect ∥ hardender → qa. Then just say it in plain language: "use reviewer to review this diff". If you later add a Claude or ChatGPT subscription, change one model line per gate — the rest of the config stays. 여섯 관문은 specifier → coder → cleaner → sw-architect ∥ hardender → qa 순이다. 쓸 때는 그냥 말로 시키면 된다 — "reviewer로 이 diff 리뷰해줘". 나중에 Claude나 ChatGPT 구독을 붙이면 관문마다 model 한 줄만 바꾸면 되고 나머지 설정은 그대로다.

STEP 9

Permissions & trust — skip the approval spam권한과 신뢰 — 승인 팝업 줄이기

The permission package from STEP 7 reads ~/.pi/agent/extensions/pi-permission-system/config.json. This policy lets ordinary work run uninterrupted, still asks before rm or sudo, hard-denies rm -rf, and blocks reads of .env files and ~/.ssh across every tool at once: STEP 7의 권한 패키지는 ~/.pi/agent/extensions/pi-permission-system/config.json을 읽는다. 아래 정책은 평범한 작업은 끊김 없이 통과시키되, rm·sudo는 물어보고, rm -rf는 아예 막고, .env 파일과 ~/.ssh 읽기를 모든 도구에서 한꺼번에 차단한다:

mkdir -p ~/.pi/agent/extensions/pi-permission-system cat > ~/.pi/agent/extensions/pi-permission-system/config.json <<'EOF' { "permission": { "*": "allow", "path": { "*": "allow", "*.env": "deny", "*.env.*": "deny", "*.env.example": "allow", "~/.ssh/*": "deny" }, "bash": { "*": "allow", "rm *": "ask", "rm -rf *": "deny", "sudo *": "ask" }, "external_directory": { "*": "ask", "~/.agents": "allow", "~/.agents/*": "allow", "~/.pi": "allow", "~/.pi/*": "allow", "/tmp/*": "allow" } } } EOF echo "permissions -> ~/.pi/agent/extensions/pi-permission-system/config.json"

Separately, pi asks whether to trust a project folder before it loads that project's settings, extensions, or skills. Set the fallback once, along with the interface options this setup uses: 이와 별개로, pi는 프로젝트 폴더의 설정·확장·스킬을 읽기 전에 그 폴더를 신뢰할지 물어본다. 그 기본 동작과 이 구성이 쓰는 화면 설정을 한 번에 정한다:

python3 - <<'EOF' import json, os p = os.path.expanduser("~/.pi/agent/settings.json") cfg = json.load(open(p)) if os.path.exists(p) else {} cfg["theme"] = "dark/dark" cfg["tuiMode"] = "fullscreen" # 전체화면 TUI cfg["hideThinkingBlock"] = True # 사고 과정 블록 접기 cfg["collapseChangelog"] = True cfg["enableInstallTelemetry"] = False cfg["defaultProjectTrust"] = "always" # 내 컴퓨터 안 프로젝트를 매번 승인하지 않는다 json.dump(cfg, open(p, "w"), indent=2, ensure_ascii=False) print("ui ->", p) EOF

⚠ defaultProjectTrust: "always" means a repository you clone can load its own pi settings and run its own extensions without asking you first. That is fine for your own code; leave it at the "ask" default if you open other people's repositories. pi has no sandbox — every tool runs as your user account. ⚠ defaultProjectTrust: "always"는 새로 클론한 저장소가 자기 pi 설정을 읽고 자기 확장을 실행하는 것을 묻지 않고 허용한다는 뜻이다. 내 코드만 다룬다면 괜찮지만, 남의 저장소를 자주 연다면 기본값 "ask"로 두라. pi에는 샌드박스가 없다 — 모든 도구는 당신 계정 권한으로 실행된다.

STEP 10

Run it and talk실행하고 첫 대화

cd ~/my-project # 작업할 폴더로 이동 pi # 실행

You are talking to the agent directly. Just write what you want, in Korean: 대화 상대는 에이전트 본인이다. 하고 싶은 일을 한국어로 그대로 쓰면 된다:

이 폴더의 코드를 읽고 프로젝트 구조를 요약해줘
  • /model — switch model mid-session. Drop to glm-5-turbo for cheap bulk work./model — 세션 도중 모델 변경. 양 많고 단순한 일은 값싼 glm-5-turbo로.
  • pi -c resumes the last session, pi -r picks one from a list.pi -c는 직전 세션 이어가기, pi -r는 목록에서 골라 이어가기.
  • pi -p "…" runs one prompt and exits — useful in scripts.pi -p "…"는 프롬프트 하나만 처리하고 종료한다 — 스크립트에 쓰기 좋다.
  • Put an AGENTS.md in the project root and pi loads it at startup as your standing project instructions.프로젝트 루트에 AGENTS.md를 두면 시작할 때 자동으로 읽어 프로젝트 상시 지시사항으로 삼는다.

Want to try a risky config without touching your real one? Point pi at a throwaway directory: 지금 설정을 건드리지 않고 위험한 실험을 해보고 싶다면, pi가 볼 디렉터리 자체를 바꿔치면 된다:

PI_CODING_AGENT_DIR=/tmp/pi-sandbox pi # 설정을 격리한 채로 실험
pi update --all # pi 본체 + 패키지 + 모델 카탈로그
STEP 11

Sync the full pi-setuppi-setup 전체 동기화

cskwork/pi-setup-public is the source of truth for settings, agents, skills, model declarations, and packages. Clone it once; later runs fast-forward the same checkout and rerun the idempotent installer. cskwork/pi-setup-public이 설정·에이전트·스킬·모델 선언·패키지의 정본이다. 한 번 클론한 뒤에는 같은 체크아웃을 fast-forward하고 멱등 설치기를 다시 실행하면 된다.

git clone https://github.com/cskwork/pi-setup-public.git ~/pi-setup-public 2>/dev/null || git -C ~/pi-setup-public pull --ff-only ~/pi-setup-public/install.sh

Prefer an agent to do this safely? Use the one-shot pi setup prompt. It preserves local changes, checks native image input, and reports anything that still needs a human. 에이전트에게 안전하게 맡기려면 pi 온보딩 한 방 설치 프롬프트를 쓴다. 로컬 수정을 보존하고, 네이티브 이미지 입력을 확인하며, 사람 손이 필요한 항목만 보고한다.

Why this setup? 왜 이 구성인가?

pi ships no model and only four built-in tools. That is the point: every extra capability remains a decision you can inspect, change, or remove. GLM-5.3-Flash combines a 1,000,000-token context with native image input, so one Z.ai model handles repository-scale code and screenshots without a second vision path. pi는 모델 없이 기본 도구 넷만 들고 나온다. 그래서 추가 기능이 전부 사용자가 읽고 바꾸고 뺄 수 있는 결정으로 남는다. GLM-5.3-Flash는 100만 토큰 컨텍스트와 네이티브 이미지 입력을 함께 제공해, 저장소 규모의 코드와 스크린샷을 별도 비전 경로 없이 한 모델로 다룬다.

pi 상세 → · pi-setup 상세 →

Other harnesses 다른 하네스

  • OpenCode 2 (opencode2) — full walkthrough: the previous default. Same Z.ai key, LSP-aware editing, vision through Z.ai's MCP server instead of a pi package. OpenCode 2(opencode2) — 전체 안내: 직전까지의 기본 구성. 같은 Z.ai 키를 쓰고, LSP로 코드를 이해하며, 이미지는 pi 패키지 대신 Z.ai의 MCP 서버로 읽는다.
  • Prime Agent: a pi fork whose only tool is a persistent IPython kernel, so Python variables survive across turns. macOS/Linux first. Prime Agent: pi를 포크한 하네스로, 도구가 영구 IPython 커널 하나뿐이라 파이썬 변수가 턴을 넘어 살아남는다. macOS·Linux 우선.
  • More in the harnesses catalog. 나머지는 harnesses 카탈로그에서.