duckbugio/flock
duckbugio/flock has 495 GitHub stars and 6 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-10 04:39 UTC. Last push 2026-10-26.
Autonomous AI dev-team bot
What you can do
- The conversation is the task source — describe what you want in chat and review the PR that comes back; the agent's shell and editor are sandboxed inside the container.
- A real dev-team pipeline, not a single prompt — spec-first acceptance criteria, build/regression gates, and an arbiter that breaks loops.
- Autonomy loops — the bot verifies its own "done" by re-running the repo's check gate itself; /goal arms an independent evaluator that loops the team until your criterion actually holds; /schedule runs recurring jobs; an optional CI watch reacts to red builds (and can auto-merge green PRs) — all under a per-chat daily autonomy budget. See Autonomy loops.
- Multi-transport — Telegram, VK and a text-first LO adapter on the same core; a new platform is a thin adapter, not a fork.
Crecimiento de estrellas medido
- in 24h
- +1
- in 7 days
- Actualización retrasada
- in 15 days
- Actualización retrasada
- in 1 month
- Actualización retrasada
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
README.es.md
OriginalEnglish · Русский · 中文 · Español · Deutsch · Français · Português (BR) · 日本語
Flock
Ejecuta un equipo de desarrollo con IA de Claude Code en tu servidor y dirígelo desde el chat. Describe una funcionalidad en Telegram o VK; el equipo la planifica, la construye en una rama, la prueba, la revisa y abre un PR — cada chat en su propio espacio de trabajo aislado.
Funciona con tu suscripción Pro/Max de Claude (sin facturación por token) o con una clave de API de Anthropic, se distribuye como imágenes Docker precompiladas (sin paso de compilación) y mantiene cada chat en su propio espacio de trabajo aislado en un sandbox.
Inicio rápido (Docker)
git clone https://github.com/duckbugio/flock
cd flock/adapters/telegram
cp .env.example .env # fill in the REQUIRED block (4 values)
docker compose up -d
Esto descarga la imagen precompilada ghcr.io/duckbugio/flock-telegram — sin construcción, sin Ansible — y luego envíale un mensaje a tu bot. El .env mínimo:
| Variable | Qué |
|---|---|
TELEGRAM_BOT_TOKEN |
de @BotFather |
TELEGRAM_BOT_USERNAME |
el @username de tu bot (sin @) |
ALLOWED_USERS |
IDs de usuario de Telegram, separados por comas, autorizados a usar el bot |
CLAUDE_CODE_OAUTH_TOKEN |
claude setup-token (suscripción) — o establece ANTHROPIC_API_KEY |
Todo lo demás en .env.example tiene valores predeterminados razonables. Actualiza más adelante con docker compose pull && docker compose up -d.
Modo secretario de Telegram
Activa el modo para el bot en @BotFather y selecciona los chats privados accesibles en Telegram. El propietario de la cuenta debe estar en ALLOWED_USERS. SECRETARY_MODE=approval envía un borrador al propietario para enviarlo o descartarlo; SECRETARY_MODE=auto responde de inmediato. Las respuestas usan el proveedor y el modelo de IA elegidos para el bot (AI_BACKEND); Telegram no elige otro modelo. Con Claude, el secretario usa el agente Flock completo, incluidas sus herramientas, MCP y una sesión persistente por chat Business. Configura un límite de gasto con el proveedor antes de activar las respuestas automáticas. Detalles en inglés.
Por ahora, el modo secretario solo funciona con AI_BACKEND=claude; con otros proveedores, el bot sigue en línea sin procesar mensajes Business.
Concede acceso solo a chats cuyos participantes sean de confianza para usar las herramientas y MCP de Flock. La aprobación solo controla la respuesta enviada: las herramientas pueden actuar antes de tu aprobación y cancelar la ejecución no deshace esas acciones.
Región: aloja en una región compatible con Anthropic (algunos países, p. ej. RU/CN, están geobloqueados) — de lo contrario, las llamadas a Claude fallarán.
VK sigue el mismo patrón bajo adapters/vk/, construido sobre el mismo núcleo y publicado como ghcr.io/duckbugio/flock-vk. Incluye solo una plantilla de entorno (sin archivo compose): cp .env.example .env, luego docker run --env-file .env ghcr.io/duckbugio/flock-vk. La autenticación de Claude y los ajustes del núcleo coinciden con los de Telegram; solo cambian las tres variables de transporte:
| Variable | Qué |
|---|---|
VK_BOT_TOKEN |
token de acceso de la comunidad (comunidad de VK → Gestionar → Uso de API → token de acceso) |
VK_GROUP_ID |
el id numérico de tu comunidad (servidor long-poll + análisis de menciones) |
VK_ALLOWED_USERS |
IDs de usuario de VK, separados por comas, autorizados a usar el bot |
Aspectos destacados
- La conversación es la fuente de las tareas — describe lo que quieres en el chat y revisa el PR que llega de vuelta; el shell y el editor del agente están aislados en un sandbox dentro del contenedor.
- Un pipeline real de equipo de desarrollo, no un único prompt — criterios de aceptación basados en la especificación, controles de construcción/regresión y un árbitro que rompe los bucles.
- Multitransporte — Telegram y VK hoy, ambos sobre el mismo núcleo; una nueva plataforma es un adaptador ligero, no un fork.
- Reacciones a PR sin webhooks entrantes — el bot sondea tu host de git en busca de nuevos comentarios de revisión y enruta cada uno de vuelta al chat que abrió el PR.
- Compatible con suscripción — autentícate con un token Pro/Max de Claude (sin coste por token) o con una clave de API de Anthropic.
Cómo funciona
You (in a chat): "implement X across the api + web services"
→ bot's Claude (Lead) → planner → confirm scope → coder ⇄ tester → PR per repo
→ reviewer (inline comments) ⇄ coder → arbiter
├ APPROVE → you merge
└ ESCALATE → asks you
Los cinco subagentes — planner → coder → tester → reviewer → arbiter — se ejecutan como subagentes nativos de Claude Code en core/agents/. Una pregunta sencilla simplemente se responde; una solicitud de construcción activa al equipo. El arbiter es el que rompe los bucles, consciente del riesgo y con límite de ciclos, para que los agentes nunca giren indefinidamente. Las ramas se nombran duck/<chatid>/<slug> para que los eventos de webhook/sondeo de PR se enruten de vuelta al chat correcto.
El equipo está diseñado para un espacio de trabajo de microservicios: una funcionalidad puede abarcar varios servicios, y coordina las ramas y un PR con enlaces cruzados por repositorio. El pipeline completo, las salvaguardas y la tabla de roles viven en core/README.md.
Estructura del repositorio (monorepo)
El cerebro del equipo de desarrollo, agnóstico de plataforma, vive en core/; cada plataforma es un adaptador ligero bajo adapters/<name>/ que lo comparte.
| Adaptador | Ruta | Imagen precompilada |
|---|---|---|
| Telegram | adapters/telegram/ |
ghcr.io/duckbugio/flock-telegram |
| VK | adapters/vk/ |
ghcr.io/duckbugio/flock-vk |
Las plataformas futuras reutilizan el mismo núcleo — consulta docs/multi-transport-plan.md.
Conectar un host de git (opcional pero fundamental)
Establece esto en .env para permitir que el equipo clone repositorios y abra PR (funciona con Gitea/GitHub/GitLab):
GIT_HOST=git.example.com
GIT_USER=...
GIT_TOKEN=... # write-scoped PAT
GIT_AUTHOR_NAME=AI Team
[email protected]
# Poll the host for new PR comments (reliable; no inbound webhook needed):
GITEA_API_URL=https://git.example.com/api/v1
GITEA_POLL_INTERVAL=90
Para github.com, establece también GH_TOKEN (= tu GIT_TOKEN) para que el CLI de gh pueda abrir PR.
El poller es la forma recomendada de reaccionar a los comentarios de revisión — sale hacia fuera, así que funciona incluso cuando tu host no puede alcanzar al bot. Está activo cuando ENABLE_PR_REVIEW=true y GITEA_API_URL está establecido. Una alternativa con webhook entrante + proxy TLS de Caddy está disponible solo a través del despliegue con Ansible (establece webhook_domain).
Otras opciones
- Mensajes de voz:
ENABLE_VOICE_MESSAGES=true,VOICE_PROVIDER=mistral|openai|local, másMISTRAL_API_KEY(oOPENAI_API_KEY). Se transcriben y se ejecutan como comandos. - Sidecar dind:
docker compose --profile dind up -dle da al equipo linters/pruebas dockerizados (estableceDOCKER_HOST=tcp://dind:2375). - Aislamiento por chat: cada chat obtiene
/workspace/chat_<id>(1:1 → privado; grupo → un espacio de trabajo compartido); los chats están totalmente aislados y se ejecutan en paralelo, limitado porMAX_CONCURRENT_CHAT_RUNS. En los grupos, estableceREQUIRE_GROUP_MENTION=truepara responder solo cuando se te @menciona o se te responde. - Despliegue con Ansible (Telegram): aprovisionamiento de un VPS con un solo comando desde
adapters/telegram/deploy— copiainventories/examplea tu propioinventories/<name>/(en gitignore), rellena el inventario/vars/vault, luegoansible-playbook -i inventories/<name>/inventory.ini playbook.yml. El rol descarga la imagen precompilada; establecebot_imagepara fijar una etiqueta.
Seguridad
- Lista blanca: solo
ALLOWED_USERS(Telegram) /VK_ALLOWED_USERS(VK) pueden usar el bot — nunca la dejes vacía; concede acceso de shell/edición a tu servidor. - Aislamiento por chat: los distintos chats obtienen espacios de trabajo separados. El token de git se comparte en todo un despliegue — defínele el alcance en consecuencia.
- Secretos: mantenlos en
.env(en gitignore) o, para Ansible, en elvault.ymlde una instancia real (en gitignore, cifrable conansible-vault). Soloinventories/example/se versiona. - Sandbox: el agente se ejecuta como un usuario sin privilegios de root; su Bash/Edit están confinados al contenedor, no a tu host.
Construir, lint, probar
El repositorio usa Task como su ejecutor de CI — el mismo punto de entrada que usa CI:
task lint # format + vet + linters (in the dev-tools image)
task tests # Go test suite
task build # compile the binaries
Licencia
MIT © DuckBug.
Contribuir y seguridad
Guías para contribuir y para reportar vulnerabilidades: CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md.
Explorar proyectos relacionados
affaan-m/ECC
Sistema de optimización del rendimiento para el marco de ejecución y control de agentes. Incluye habilidades, instintos, memoria, seguridad y un desarrollo que prioriza la investigación para Claude Code, Codex, Opencode, Cursor y más.
300,777 estrellasNousResearch/hermes-agent
El agente que crece contigo
262,434 estrellasmultica-ai/andrej-karpathy-skills
Un único archivo CLAUDE.md para mejorar el comportamiento de Claude Code, derivado de las observaciones de Andrej Karpathy sobre las trampas al programar con LLM.
231,850 estrellasfirecrawl/firecrawl
Potencia tus agentes de IA con datos de la web y más allá. Estamos construyendo la biblioteca para la superinteligencia. 🔥
200,444 estrellas