저는 마크다운 (Markdown) 파일을 쉘 스크립트 (Shell script)처럼 실행하고 싶었습니다. 그래서 Shebang을 사용하여 표준 입력 (stdin) 및 표준 출력 (stdout)을 완전히 지원하며, Claude Code를 통해 파이프 (Pipe)로 연결할 수 있는 오픈 소스 도구를 만들었습니다.
task.md:
#!/usr/bin/env claude-run
Analyze this codebase and summarize the architecture.
그 다음:
chmod +x task.md
./task.md
이것들은 단순한 프롬프트 (Prompt)가 아닙니다. Claude Code는 도구 사용 (Tool use) 기능이 있으므로, 마크다운 파일이 쉘 명령어를 실행하고, 스크립트를 작성하며, 파일을 읽고, API 호출을 할 수 있습니다. 프롬프트가 모든 것을 조율 (Orchestrate)합니다.
테스트를 실행하고 결과를 보고하는 스크립트 (run_tests.md):
#!/usr/bin/env claude-run --permission-mode bypassPermissions
Run ./test/run_tests.sh and summarize what passed and failed.
표준 입력 (stdin) 및 표준 출력 (stdout)이 일반적인 Unix 프로그램과 동일하게 작동하기 때문에, 다음과 같이 체이닝 (Chaining)할 수 있습니다:
cat data.json | ./analyze.md > results.txt
git log -10 | ./summarize.md
./generate.md | ./review.md > final.txt
또는 전통적인 쉘 스크립트와 혼합하여 사용할 수도 있습니다:
for f in logs/*.txt; do
cat "$f" | ./analyze.md >> summary.txt
done
이 도구는 저희에게 많은 Python 글루 코드 (Glue code)를 대체해 주었습니다. LLM 오케스트레이션 (Orchestration) 라이브러리가 필요했던 작업들이 이제 표준 Unix 도구로 구성된 마크다운 파일이 되었습니다. 빌딩 블록 (Building blocks)으로서 조합 가능하며, 크론 잡 (Cron jobs)으로 실행할 수도 있습니다.
우리가 예상하지 못했던 한 가지는 이것들이 쉘 스크립트보다 더 감사 가능 (Auditable)하고 (공유하기에도) 좋다는 점입니다. curl -fsSL https://bun.com/install | bash와 같은 설치 스크립트는 다음과 같이 바뀔 수 있습니다:
`curl -fsSL https://bun.com/install.md | claude-run`
여기서 install.md는 "내 OS와 아키텍처를 감지하고, GitHub releases에서 적절한 바이너리를 다운로드하여, ~/.local/bin에 압축을 풀고, 내 쉘 설정을 업데이트하라"와 같은 내용을 담고 있습니다. 일반적인 사람도 실제로 이를 읽고 검증할 수 있습니다.
이 (정말 멋진) 실행 가능한 마크다운 아이디어와 감사 가능성 예시는 Pete Koomen (@koomen on X)으로부터 가져왔습니다. Pete가 말했듯이: "마크다운은 대부분의 사람들이 아직 완전히 이해하지 못했을 수도 있는 방식으로 점점 더 중요해지고 있습니다."
저희는 이를 구현하였으며 Unix 파이프 (pipe) 시맨틱스 (semantics)를 추가했습니다. 현재는 Claude Code와 함께 작동하며, 다른 AI 코딩 도구들도 지원할 수 있기를 희망하고 있습니다. 또한 자동화된 작업에 대해 별도의 비용 청구를 원하신다면, 다양한 클라우드 제공업체 (AWS Bedrock 등)를 통해 스크립트를 라우팅할 수도 있습니다.
GitHub: https://github.com/andisearch/claude-switcher
여러분은 어떤 워크플로 (workflows)에 이것을 사용하시겠습니까?