hands-please
$ npx hands-please@latest --agent 'claude --print --output-format stream-json --verbose --allowedTools "Edit,Write,WebFetch"' --check 'npm run check' --file-check 'npm run lint'
주석을 추가합니다:
// @ai add a test case to divide by 0
describe("division", () => {
it("should divide 10 by 2", () => {
...
$ npx hands-please@latest --agent 'claude --print --output-format stream-json --verbose --allowedTools "Edit,Write,WebFetch"' --check 'npm run check' --file-check 'npm run lint'
⠏ "@ai"가 포함된 주석을 감시 중....
ℹ 🫱 src/math.test.ts:194 주석 처리 중
...
hands-please는 다음과 같이 명령줄 인자(command line arguments)를 사용하여 설정됩니다:
# 기본 사용법
npx hands-please --agent <agent-command> --check <check-command> --file-check <file-check-command> [options]
# 옵션:
...
Claude Code 예시:
pnpm dlx hands-please@latest \
--agent 'claude --print --output-format stream-json --verbose --allowedTools "Edit,Write,WebFetch"' \
--check 'pnpm check' \
...
저는 혼란 없이 '바이브 코딩 (vibe coding)'의 생산성을 얻고 싶었습니다. 즉, 주석을 기반으로 정밀하게 로컬 코딩 에이전트를 실행하는 것입니다.
채팅 인터페이스는 없으며, 코드 에이전트와 상호작용하는 유일한 방법은 코드 주석을 통하는 것입니다.
워크플로우 (Workflow):
@ai를 포함하는 주석을 포착합니다.
- 주석의 프롬프트 또는 린팅 (linting) 이슈를 사용하여 에이전트를 실행합니다.
- 변경된 파일에 대해 파일 체크 (file-check) 명령을 실행합니다. 에러가 발생하면 2번으로 돌아갑니다.
- 전체 코드베이스 체크 (codebase check) 명령을 실행합니다. 에러가 발생하면 2번으로 돌아갑니다.
- => 완료! 다음 주석을 처리합니다.
hands-please가 잘 작동하려면, eslint <file1> <file2>와 같이 작동하는 eslint와 같은 --file-check 옵션을 사용하여 파일별 체크를 제공하는 것이 중요합니다. 이를 통해 hands-please는 변경된 파일에 대해서만 체크를 실행하고, 에이전트가 수행한 변경 사항과 관련된 피드백을 코드 에이전트에게 제공할 수 있습니다. => 매우 빠른 피드백 루프 (feedback loop)!
- aider: 코멘트 기반 (comment-based) 코드 에이전트를 위한 도구
- Claude Code: 개발자 경험 (DX) 및 훌륭한 자동 모드 (auto-mode) 경험을 위한 도구