GitHub - amplifthq/opentag: Open-source @agent mentions for Slack and GitHub. OpenTag routes tagged requests to Codex, Claude Code, then returns results in thread.
Service

GitHub - amplifthq/opentag: Open-source @agent mentions for Slack and GitHub. OpenTag routes tagged requests to Codex, Claude Code, then returns results in thread.

amplifthq
2026.07.05
·GitHub·by Mineru
#Agent#GitHub#LLM#Open-source#Slack

핵심 포인트

  • 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), 그리고 에이전트 간의 엄격한 경계를 설정합니다.

  1. Work Loop 및 거버넌스:
OpenTag는 사용자가 플랫폼에서 특정 에이전트를 호출(@opentag)하면, 해당 스레드를 컨텍스트 패킷으로 캡슐화합니다. 이후 로컬 디스패처가 이를 수신하여 권한 및 실행 가능 여부를 확인한 뒤, Codex나 Claude Code와 같은 로컬 코딩 에이전트를 구동합니다.
  1. Source-Thread Action Receipts:
에이전트가 변경 사항을 제안할 때, OpenTag는 즉시 변경 내용을 요약한 Receipt(영수증)를 렌더링합니다. 이 Receipt는 작업의 적용 여부를 결정하는 승인 인터페이스 역할을 하며, 설정된 어댑터가 실행 가능한 상태일 때만 'Apply' 버튼이 활성화됩니다.

  1. Local-First Audit Ledger:
모든 작업은 로컬 SQLite 저장소에 기록됩니다. 여기에는 다음 정보가 포함됩니다:
Lagent={Esource,Dadmission,Scontext,Scapability,Aproduced,Ccallback,Ofinal}L_{agent} = \{E_{source}, D_{admission}, S_{context}, S_{capability}, A_{produced}, C_{callback}, O_{final}\}
  • EsourceE_{source}: 소스 이벤트
  • DadmissionD_{admission}: 승인 결정
  • ScontextS_{context}: 컨텍스트 패킷 스냅샷
  • ScapabilityS_{capability}: 실행기 역량 스냅샷
  • AproducedA_{produced}: 생성된 아티팩트
  • CcallbackC_{callback}: 콜백 전달 기록
  • OfinalO_{final}: 최종 결과
  1. 기술 스택 및 배포:
    • Node.js 20+ 환경에서 구동되며, 배경 서비스 모드(LaunchAgent 또는 systemd --user)를 지원합니다.
    • 플랫폼과 로컬 실행기 간의 통신을 위해 Local-runtime 라이브러리를 사용하며, @opentag/dispatcher를 통해 이벤트 흐름을 조정합니다.
    • 개인 정보 보호를 위해 플랫폼 자격 증명은 사용자 로컬 환경에 저장되며, 로컬 체크아웃(Local Checkout) 상태에서 에이전트가 작업을 수행합니다.

시스템 흐름

데이터 흐름은 다음과 같은 단계를 거칩니다:
Platform→OpenTag Listener→Local Dispatcher→Local Runner→Executor (Codex/Claude Code)→Platform Reply\text{Platform} \rightarrow \text{OpenTag Listener} \rightarrow \text{Local Dispatcher} \rightarrow \text{Local Runner} \rightarrow \text{Executor (Codex/Claude Code)} \rightarrow \text{Platform Reply}

이 구조를 통해 OpenTag는 외부 클라우드 서비스에 의존하지 않고도, 팀이 이미 사용 중인 플랫폼의 문맥을 유지하면서 안전하고 감사 가능한 에이전트 기반의 자동화 작업을 로컬에서 수행할 수 있도록 지원합니다.