고삐
고삐 (goppi)는 터미널 코딩 에이전트입니다. 풀스크린 TUI로 트리를 읽고,
파일을 고치고, shell을 돌리고, 문서를 파싱합니다. script와 CI에서는
headless로, 에디터에서는 Agent Client Protocol
로 붙습니다.
API key와 session은 이 머신에 남고, 파일·shell·문서는 workdir(그리고 허용한
extra root) 안에서만 움직입니다.
Install ·
Build from source ·
Documentation ·
Layout ·
Development ·
License ·
Security
기본 backend는 Upstage Solar
입니다 (solar-pro4, reasoning_effort=medium). --provider openai 또는
compat이면 OpenAI-compatible Chat Completions도 씁니다.
Install
설치 스크립트는 GitHub release 바이너리를 받아 SHA256을 확인한 뒤
~/.local/bin/goppi에 둡니다. 맞는 release가 없으면
Go 1.27+로 go install합니다.
curl -fsSL https://raw.githubusercontent.com/sspzoa/goppi/main/install.sh | bash
goppi version
goppi login
goppi
[!NOTE]
~/.local/bin이 PATH에 있어야 합니다. GOPPI_INSTALL_DIR로 경로를 바꾸고,
GOPPI_INSTALL_FROM=go면 소스 설치만 합니다.
SHA256SUMS.sigstore.json이 있으면 cosign으로 검증합니다. 없으면 SHA256만
확인합니다. 미러(GOPPI_RELEASE_BASE)는 서명을 강제합니다
(GOPPI_SKIP_COSIGN=1은 테스트용).
$(go env GOPATH)/bin이 이미 PATH에 있으면:
go install github.com/sspzoa/goppi/cmd/goppi@latest
goppi login은 ~/.config/goppi/credentials.json을 mode 0600으로 씁니다.
로컬 key store이며 OAuth가 아니고 browser를 열지 않습니다.
UPSTAGE_API_KEY 또는 GOPPI_API_KEY를 보내도 됩니다.
Authentication을 보세요.
Build from source
git clone https://github.com/sspzoa/goppi.git
cd goppi
make build # bin/goppi
make check # fmt + vet + staticcheck + govulncheck + test + windows
make test
./bin/goppi version
make install은 go install ./cmd/goppi입니다.
프로젝트 디렉터리에서 goppi를 켜세요. 처음 물어보기 좋은 것:
이 레포 구조를 설명해줘
테스트가 어디서 도는지 찾고 한 개만 돌려
Headless:
goppi -p "이 레포 구조를 설명해줘"
goppi -p "요약해" --output-format json
goppi --always-approve -p "go test ./..."
goppi --worktree -p "이 버그 고쳐"
goppi acp
bash, write_file, edit_file, apply_patch는 --always-approve /
--yolo가 없으면 실행 전에 묻습니다. JSON·비 TTY에서는 flag 없이 해당
tool을 거부합니다. bash는 기본으로 workdir·임시·캐시 밖 쓰기를 거부합니다
(--sandbox off로 해제, --sandbox strict면 네트워크도 차단).
Documentation
유저 가이드는 docs/에 있습니다.
| Page |
Contents |
| Getting started |
설치, API key, 첫 TUI session |
| Authentication |
login / logout, env |
| TUI |
key, slash command, panel |
| CLI |
command, flag, shell completion |
| Configuration |
file, model, GOPPI.md |
| Sessions |
-c / -r, export |
| Tools |
파일, bash, 문서, MCP, LSP, delegate |
| Headless |
-p, JSON, CI |
| Development |
빌드, test, 패키지 구조 |
Shell completion:
goppi completions zsh > ~/.zfunc/_goppi
goppi completions bash > /usr/local/etc/bash_completion.d/goppi
goppi completions fish > ~/.config/fish/completions/goppi.fish
TUI 안에서는 / 다음에 tab으로 /model, /effort와 값을 완성합니다.
Layout
| Path |
Contents |
cmd/goppi |
CLI entry: run, login, doctor, sessions, completions |
internal/upstage |
chat · document HTTP client |
internal/provider |
chat request/response, SSE |
internal/agent |
tool loop와 event sink |
internal/tui |
풀스크린 chat (Charm Bubble Tea v2) |
internal/repl |
TTY면 TUI, 아니면 line loop. Headless -p |
internal/tools |
파일, bash, 문서, MCP, LSP, delegate |
internal/mcp |
stdio MCP 클라이언트 |
internal/session |
named transcript |
internal/instructions |
GOPPI.md / AGENTS.md |
internal/complete |
slash · shell completion |
internal/config |
default, env, credentials |
Agent, tool, HTTP client는 표준 라이브러리만 씁니다. Interactive TUI는
Charm입니다. GOPPI_TUI=0이면 line REPL로 떨어집니다.
Development
make check # fmt + vet + staticcheck + govulncheck + test + windows
make release-check # check + verify-dist (tag 전 게이트)
make release-prepare # release-check + ci-smoke (tag push 직전)
make pre-release # release-prepare + live-check
make ci-smoke # ci-cli-smoke + ci-headless-smoke
make test
go vet ./...
./bin/goppi
자세한 내용은 docs/development.md를 보세요. Release tag는
config.Version과 맞춰 v0.x.y로 push합니다.
에이전트가 매 turn 읽는 프로젝트 지시: GOPPI.md, AGENTS.md,
.goppi/instructions.md. goppi init이 stub을 씁니다.
릴리스별 변경은 CHANGELOG.md를 보세요.
License
AGPL-3.0.