gob
GitHub Release
Go Report Card
Go
Languages
Contributors
Last Commit
Ask DeepWiki
AI 에이전트(및 인간)를 위한 프로세스 관리자.
gob을 사용하면 AI 코딩 에이전트가 백그라운드 프로세스를 시작하고 나중에 이를 검사할 수 있습니다. 에이전트는 개발 서버나 빌드를 시작한 다음, 나중에 로그, 상태 및 포트를 읽습니다. (물론 'job'이라고 발음합니다.) 또한 사용자 스스로도 백그라운드 작업을 시작하고 검사할 수 있습니다.
TUI Screenshot
gob을 사용해야 하는 이유
gob은 임시적인 백그라운딩 방식(예: &, nohup, 여기저기 흩어진 tmux 패널, 스크롤백)을 사용자와 에이전트가 모두 읽고 제어하는 관리형 작업 저장소(managed job store)로 대체합니다. 이 단 하나의 아이디어만으로 다음 기능들을 얻을 수 있습니다:
- 공유된 보기 (Shared view) - 사용자 자신과 코딩 에이전트가 동일한 프로세스, 로그 및 상태를 볼 수 있습니다.
- 실시간 로그 스트리밍 (Real-time log streaming) - 출력 내용을 복사할 필요 없이 CLI, TUI 또는 에이전트로부터 stdout/stderr를 추적합니다.
- 실시간 동기화 (Real-time sync) - CLI에서 발생한 변경 사항은 TUI에 즉시 나타나고, 그 반대도 마찬가지입니다.
- 대화형 TUI (Interactive TUI) - 라이브 작업 상태가 표시되는 전체 화면 터미널 인터페이스를 제공합니다.
- 디렉터리별 작업 관리 (Per-directory jobs) - 작업이 디렉터리에 범위 지정되어 프로젝트 관리가 용이합니다.
- 프로세스 수명 주기 제어 (Process lifecycle control) - 모든 작업을 시작, 중지, 재시작 및 신호(signal)를 보낼 수 있습니다.
- 포트 모니터링 (Port monitoring) - 작업의 전체 프로세스 트리에서 리스닝 포트를 검사할 수 있습니다.
- 신뢰할 수 있는 종료 (Reliable shutdowns) - 중지, 재시작 및 종료 시 트리의 모든 자식(child)이 사라졌는지 확인합니다.
- 작업 지속성 (Job persistence) - SQLite 기반 상태를 통해 데몬 재시작 후에도 작업 정보가 유지됩니다.
- 실행 기록 (Run history) - 반복되는 명령어에 대한 실행 기록, 통계 및 진행률 추정치를 추적할 수 있습니다.
- 멈춤 감지 (Stuck detection) - 작업이 멈췄을 가능성이 있는 작업을 감지하고 조기에 반환하지만, 해당 작업은 계속 실행되도록 합니다.
- 차단된 작업 (Blocked jobs) - 에이전트가 실수로 위험한 명령어를 실행하는 것을 방지합니다.
설치
Homebrew, go install, 또는 미리 빌드된 바이너리를 사용하여 gob을 설치하세요.
<details>
<summary>Homebrew</summary>
brew tap juanibiapina/taps
brew install gob
<details>
<summary>Go 설치</summary>
go install github.com/juanibiapina/gob@latest
요구 사항:
바이너리는 $GOPATH/bin (또는 설정된 경우 $GOBIN)에 설치됩니다. 이 디렉터리가 PATH에 포함되어 있는지 확인하세요.
</details>
<details>
<summary>사전 빌드 바이너리</summary>
사용 중인 플랫폼의 최신 릴리스를 Releases 페이지에서 다운로드하세요.
사용 가능한 플랫폼: Linux, macOS (amd64 및 arm64 모두)
curl -LO https://github.com/juanibiapina/gob/releases/latest/download/gob_VERSION_darwin_arm64.tar.gz
...
</details>
<details>
<summary>소스에서 빌드</summary>
빌드 지침은 CONTRIBUTING.md를 참조하세요.
</details>
빠른 시작
일상적인 흐름은 두 가지 형태 중 하나입니다: 실행 후 대기(run and wait), 또는 추가하고 나중에 돌아오기(add and come back later).
AI 코딩 에이전트와 함께 사용하기
gob은 AI 코딩 에이전트를 위한 지침을 포함하는 에이전트 스킬(agent skill)을 제공합니다. skills CLI를 사용하여 설치하세요:
npx skills add juanibiapina/gob
이렇게 하면 gob 지침이 에이전트(Claude Code, Cursor, Codex 등)에서 사용할 수 있게 됩니다. 해당 스킬은 skills/gob/SKILL.md에 위치하며, 내용 전체를 에이전트의 설정 파일(CLAUDE.md, AGENTS.md 등)로 복사할 수도 있습니다.
대화형 TUI (Text User Interface)
작업을 직접 모니터링하고 제어하려면 전체 화면 터미널 인터페이스를 실행하세요:
레이아웃
TUI는 정보 표시줄(info bar)과 다섯 개의 패널로 구성되어 있습니다:
- 정보 표시줄(Info bar): 작업 디렉터리 및 버전을 보여줍니다.
- 패널 1 (Jobs): 상태가 있는 모든 작업 목록을 보여줍니다 (◉ 실행 중, ✓ 성공, ✗ 실패).
- 설명(Description): 작업 설명(선택된 작업에만 표시됨)을 보여줍니다.
- 패널 2 (Ports): 선택된 작업을 위한 리스닝 포트를 보여줍니다.
- 패널 3 (Runs): 선택된 작업의 실행 기록을 보여줍니다.
- 패널 4 (stdout): 선택된 실행의 표준 출력을 보여줍니다.
- 패널 5 (stderr): 선택된 실행의 표준 오류를 보여줍니다.
키 바인딩(Key Bindings)
| 키 | 동작 |
|---|
↑/k, ↓/j | 이동 / 스크롤 |
| ... | |
프로세스 제어 키(s/S/r/d)는 모든 패널에서 선택된 작업에 적용됩니다. 유일한 예외는 Runs 패널의 d로, 이 경우 선택된 실행을 삭제합니다. | |
gobfile을 이용한 자동 시작(Auto-Start with Gobfile)
TUI가 시작될 때 프로젝트의 일반적인 작업을 자동으로 시작하려면, 프로젝트 디렉터리에 .config/gobfile.toml 파일을 생성하세요:
[[job]]
command = "npm run dev"
description = "Frontend on http://localhost:3000. Check here for UI errors."
...
필드(Fields):
command (필수): 실행할 명령어입니다.
description (선택 사항): AI 에이전트를 위한 컨텍스트 정보(포트, URL, 확인할 내용 등)입니다.
autostart (선택 사항): TUI가 열릴 때 작업을 시작할지 여부입니다 (기본값: true).
blocked (선택 사항): true인 경우, 해당 작업은 시작할 수 없으며 CLI는 시도했을 때 설명을 보여줍니다 (기본값: false).
동작 방식(Behavior):
- TUI가 열릴 때 작업이 비동기적으로 시작됩니다 (
autostart = true인 경우).
- TUI를 종료할 때(터미널이 종료되는 경우 포함) 작업이 중지됩니다.
- 이미 실행 중인 작업은 설명이 다르면 업데이트됩니다.
- 명령어가 일치하는 중지된 작업은 재시작됩니다.
autostart = false인 작업은 추가되지만 시작되지 않습니다.
팁(Tip): 이 파일을 공유하고 싶지 않다면 .config/gobfile.toml을 .gitignore에 추가하세요.
CLI 참조(CLI Reference)
사용법, 예시 및 플래그에 대한 자세한 사용법은 gob <명령어> --help를 실행하세요.
| Command | Description |
|---|
run <cmd> | 명령을 실행하고 완료를 기다립니다 (--description으로 컨텍스트 추가 가능) |
| ... | |
셸 자동 완성 (Shell Completion)
gob는 타이핑하는 동안 명령 설명과 함께 실시간 작업 ID(job-ID) 제안을 제공합니다.
Homebrew가 Bash, Zsh, 그리고 Fish에 대한 자동 완성 기능을 자동으로 설치합니다. 별도의 설정이 필요 없습니다. 새 셸을 시작하기만 하면 됩니다.
수동 설치의 경우, 완성 스크립트를 한 번 작성하여 셸의 자동 완성 경로에 있는 파일로 저장하십시오. 셸의 rc에서 source <(gob completion ...)를 사용하지 마십시오: 이는 새 셸마다 gob를 실행하여 시작 속도를 늦춥니다. 대신 파일을 생성하고, gob를 업그레이드할 때만 재생성하십시오.
<details>
<summary>Bash</summary>
gob completion bash > "$(brew --prefix 2>/dev/null || echo /usr/local)/etc/bash_completion.d/gob"
</details>
<details>
<summary>Zsh</summary>
mkdir -p ~/.zsh/completions
gob completion zsh > ~/.zsh/completions/_gob
...
</details>
<details>
<summary>Fish</summary>
gob completion fish > ~/.config/fish/completions/gob.fish
</details>
기여 (Contributing)
기여에 관심이 있으신가요? 개발 설정(development setup), 빌드 지침(build instructions), 테스트 지침(testing instructions), 그리고 기여 가이드라인을 보려면 CONTRIBUTING.md를 확인하십시오.
스타 기록 (Star History)
Star History Chart