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 when needed, 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+ and npm are available.
   - First run `node -v` and `npm -v`.
   - If Node is missing or older than 22, use the platform package manager when available.
   - If no safe package manager is available, stop and tell me to install Node 22 from https://nodejs.org.

3. Ensure pi is installed.
   - Check with `pi --version`.
   - If missing, run:
     `npm install -g --ignore-scripts @earendil-works/pi-coding-agent`
   - Re-run `pi --version`. 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`.
   - 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.

7. Share the operating instructions with every coding agent on this machine.
   - `~/pi-setup-public/AGENTS.md` is the operating contract: orient, options, delegate, plan, execute,
     verify, report. Plan confirmation is the last human gate; the agent runs the rest on its own and
     stops only for data loss, public APIs, security, or migrations.
   - The installer already links it into `~/.pi/agent/AGENTS.md`. Link the same file into each other agent
     you use, and skip any directory whose agent is not installed:
     `ln -sfn ~/pi-setup-public/AGENTS.md ~/.claude/CLAUDE.md`
     `ln -sfn ~/pi-setup-public/AGENTS.md ~/.codex/AGENTS.md`
     `ln -sfn ~/pi-setup-public/AGENTS.md ~/.gemini/GEMINI.md`
     `ln -sfn ~/pi-setup-public/AGENTS.md ~/.config/opencode/AGENTS.md`
   - 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.
   - Resolve every operating-instruction link from step 7 and confirm each one points at
     `~/pi-setup-public/AGENTS.md`.
   - `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 pi and Node versions.
   - 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.jsonzai 항목에 저장되고 다음부터 자동으로 쓰인다. 아니면 실행 전에 환경변수로 넣는다:

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 specifiercodercleanersw-architecthardenderqa. 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. 여섯 관문은 specifiercodercleanersw-architecthardenderqa 순이다. 쓸 때는 그냥 말로 시키면 된다 — "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 카탈로그에서.