GitHub - amplifthq/opentag: Open-source @agent mentions for Slack and GitHub. OpenTag routes tagged requests to Codex, Claude Code, then returns results in thread.
핵심 포인트
- 1OpenTag는 Slack, GitHub, Discord와 같은 협업 플랫폼의 작업 스레드를 로컬 환경에서 실행 가능한 에이전트 작업 루프로 전환해 주는 오픈소스 프레임워크입니다.
- 2이 시스템은 로컬 우선(local-first) 방식을 채택하여 사용자의 코드와 설정 정보가 로컬 기기 내에서 처리되도록 하며, 작업에 대한 모든 실행 이력과 권한 확인을 투명하게 감사할 수 있도록 지원합니다.
- 3사용자는 @opentag 명령을 통해 Codex나 Claude Code와 같은 코딩 에이전트를 호출하여 소스 스레드 내에서 직접 변경 사항을 검토하고 적용하는 효율적인 워크플로우를 구현할 수 있습니다.
OpenTag은 기존의 커뮤니케이션 플랫폼(Slack, GitHub, GitLab, Lark/Feishu, Telegram, Discord) 내 스레드에서 발생하는 대화를 관리 가능한 에이전트 작업 루프(Governed Agent Work Loop)로 전환하는 Local-first 및 Executor-neutral 오픈소스 프레임워크입니다. 이 시스템의 핵심은 코딩 에이전트가 로컬 환경에서 안전하게 실행되도록 조정하고, 플랫폼 내 대화 흐름을 작업의 승인 및 감사 지점으로 활용하는 것입니다.
핵심 방법론 및 기술적 구조
OpenTag의 아키텍처는 플랫폼, 디스패처, 런너(Runner), 그리고 에이전트 간의 엄격한 경계를 설정합니다.
- Work Loop 및 거버넌스:
@opentag)하면, 해당 스레드를 컨텍스트 패킷으로 캡슐화합니다. 이후 로컬 디스패처가 이를 수신하여 권한 및 실행 가능 여부를 확인한 뒤, Codex나 Claude Code와 같은 로컬 코딩 에이전트를 구동합니다.- Source-Thread Action Receipts:
- Local-First Audit Ledger:
- : 소스 이벤트
- : 승인 결정
- : 컨텍스트 패킷 스냅샷
- : 실행기 역량 스냅샷
- : 생성된 아티팩트
- : 콜백 전달 기록
- : 최종 결과
- 기술 스택 및 배포:
- Node.js 20+ 환경에서 구동되며, 배경 서비스 모드(
LaunchAgent또는systemd --user)를 지원합니다. - 플랫폼과 로컬 실행기 간의 통신을 위해
Local-runtime라이브러리를 사용하며,@opentag/dispatcher를 통해 이벤트 흐름을 조정합니다. - 개인 정보 보호를 위해 플랫폼 자격 증명은 사용자 로컬 환경에 저장되며, 로컬 체크아웃(Local Checkout) 상태에서 에이전트가 작업을 수행합니다.
- Node.js 20+ 환경에서 구동되며, 배경 서비스 모드(
시스템 흐름
데이터 흐름은 다음과 같은 단계를 거칩니다:이 구조를 통해 OpenTag는 외부 클라우드 서비스에 의존하지 않고도, 팀이 이미 사용 중인 플랫폼의 문맥을 유지하면서 안전하고 감사 가능한 에이전트 기반의 자동화 작업을 로컬에서 수행할 수 있도록 지원합니다.