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 안내는 이쪽이다.
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의 텍스트·이미지 입력을 검증한다. 패키지 목록을 이 페이지에 복제하지 않고 저장소를 정본으로 쓴다.
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을 손으로 따라가면 된다.
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. ⚠ 키는 비밀번호다. 채팅·스크린샷에 절대 붙여넣지 말고, 유출되면 즉시 관리자에게 회전(교체)을 요청하라.
Open the terminal터미널 열기
macOS: press ⌘+Space, type 터미널 (or Terminal), Enter. Windows: press the Start key, type PowerShell, Enter. macOS: ⌘+스페이스를 누르고 터미널(또는 Terminal) 입력 후 엔터. Windows: 시작 버튼 → PowerShell 검색 → 엔터. 이후 모든 명령은 이 창에 입력한다.
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 인스톨러 설치 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에서 검증했다 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 키 하나만으로 진행한다.
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는 그 척도의 맨 위다.
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에 이 선언을 제공한다.
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-subagents | Child agents — review, scouting, parallel audits, background jobs.자식 에이전트 — 리뷰·정찰·병렬 감사·백그라운드 작업. |
| pi-lens | LSP diagnostics, symbol search, module outlines — code intelligence.LSP 진단·심볼 검색·모듈 개요 — 코드 이해 도구. |
| pi-web-access | Web search and URL fetching.웹 검색과 URL 가져오기. |
| context-mode | Runs code over big outputs in a sandbox so raw bytes never fill the context window.큰 출력을 샌드박스 안에서 코드로 처리해, 원문이 컨텍스트를 잡아먹지 않게 한다. |
| pi-mcp-adapter | Connects MCP servers (the standard way agents attach external tools).MCP 서버 연결 — 에이전트가 외부 도구를 붙이는 표준 규약. |
| pi-background-tasks | Long-running commands (test suites, dev servers) without blocking the session.테스트·개발 서버처럼 오래 도는 명령을 세션을 막지 않고 실행. |
| @gotgenes/pi-permission-system | allow / ask / deny gates over tools, bash, MCP, and paths. STEP 9 configures it.도구·bash·MCP·경로에 allow/ask/deny 관문. 설정은 STEP 9. |
| @juicesharp/rpiv-todo | A task list the agent keeps across a multi-step job.여러 단계 작업 동안 에이전트가 유지하는 할 일 목록. |
| @juicesharp/rpiv-ask-user-question | Lets the agent ask you structured multiple-choice questions mid-run.작업 도중 에이전트가 객관식으로 물어볼 수 있게 한다. |
| @samfp/pi-memory | Persistent facts, preferences, and lessons across sessions.세션을 넘어 남는 사실·선호·교훈 저장소. |
| pi-markdown-preview | Export Markdown/LaTeX to PDF, HTML, or PNG.마크다운·LaTeX를 PDF·HTML·PNG로 내보내기. |
| pi-powerline-footer | Status footer: model, token usage, cost.하단 상태줄 — 모델·토큰 사용량·비용. |
| pi-simplify | Trims the built-in prompt surface.기본 프롬프트 표면을 줄인다. |
| @narumitw/pi-goal · pi-usage | Goal 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만으로도 쓸 만한 최소 확장 세트다.
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 한 줄만 바꾸면 되고 나머지 설정은 그대로다.
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에는 샌드박스가 없다 — 모든 도구는 당신 계정 권한으로 실행된다.
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 toglm-5-turbofor cheap bulk work./model— 세션 도중 모델 변경. 양 많고 단순한 일은 값싼glm-5-turbo로.pi -cresumes the last session,pi -rpicks one from a list.pi -c는 직전 세션 이어가기,pi -r는 목록에서 골라 이어가기.pi -p "…"runs one prompt and exits — useful in scripts.pi -p "…"는 프롬프트 하나만 처리하고 종료한다 — 스크립트에 쓰기 좋다.- Put an
AGENTS.mdin 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 본체 + 패키지 + 모델 카탈로그 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만 토큰 컨텍스트와 네이티브 이미지 입력을 함께 제공해, 저장소 규모의 코드와 스크린샷을 별도 비전 경로 없이 한 모델로 다룬다.
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 카탈로그에서.