agentirc-cli 0.15.2__tar.gz → 0.16.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.pr_agent.toml +1 -1
  2. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/CHANGELOG.md +22 -0
  3. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/CLAUDE.md +1 -1
  4. agentirc_cli-0.16.1/PKG-INFO +193 -0
  5. agentirc_cli-0.16.1/README.md +171 -0
  6. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/cli.py +66 -38
  7. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/agent_runner.py +31 -18
  8. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/config.py +4 -2
  9. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/daemon.py +43 -30
  10. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/irc_transport.py +1 -1
  11. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/skill/SKILL.md +9 -9
  12. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/skill/irc_client.py +5 -5
  13. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/socket_server.py +1 -1
  14. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/acp}/webhook.py +1 -1
  15. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/config.py +5 -1
  16. agentirc_cli-0.16.1/agentirc/clients/claude/supervisor.py +141 -0
  17. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/config.py +3 -1
  18. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/config.py +3 -1
  19. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/learn_prompt.py +5 -2
  20. agentirc_cli-0.16.1/docs/agent-client.md +28 -0
  21. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/agent-harness-spec.md +7 -6
  22. agentirc_cli-0.16.1/docs/clients/acp/overview.md +140 -0
  23. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/getting-started.md +1 -1
  24. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/grow-your-agent.md +5 -5
  25. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/harness-conformance.md +1 -1
  26. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/layer5-agent-harness.md +1 -1
  27. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/10-grow-your-agent.md +1 -1
  28. agentirc_cli-0.16.1/index.md +78 -0
  29. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/pyproject.toml +3 -3
  30. agentirc_cli-0.15.2/tests/test_opencode_daemon.py → agentirc_cli-0.16.1/tests/test_acp_daemon.py +26 -24
  31. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/uv.lock +1 -1
  32. agentirc_cli-0.15.2/PKG-INFO +0 -224
  33. agentirc_cli-0.15.2/README.md +0 -202
  34. agentirc_cli-0.15.2/agentirc/clients/opencode/supervisor.py +0 -163
  35. agentirc_cli-0.15.2/docs/agent-client.md +0 -11
  36. agentirc_cli-0.15.2/docs/clients/opencode/configuration.md +0 -187
  37. agentirc_cli-0.15.2/docs/clients/opencode/context-management.md +0 -73
  38. agentirc_cli-0.15.2/docs/clients/opencode/irc-tools.md +0 -186
  39. agentirc_cli-0.15.2/docs/clients/opencode/overview.md +0 -125
  40. agentirc_cli-0.15.2/docs/clients/opencode/setup.md +0 -214
  41. agentirc_cli-0.15.2/docs/clients/opencode/supervisor.md +0 -126
  42. agentirc_cli-0.15.2/docs/clients/opencode/webhooks.md +0 -91
  43. agentirc_cli-0.15.2/docs/opencode-backend.md +0 -6
  44. agentirc_cli-0.15.2/index.md +0 -107
  45. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.claude/skills/pr-review/SKILL.md +0 -0
  46. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.github/workflows/pages.yml +0 -0
  47. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.github/workflows/publish.yml +0 -0
  48. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.github/workflows/tests.yml +0 -0
  49. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.gitignore +0 -0
  50. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/.markdownlint-cli2.yaml +0 -0
  51. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/CNAME +0 -0
  52. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/Gemfile +0 -0
  53. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/Gemfile.lock +0 -0
  54. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/LICENSE +0 -0
  55. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/_config.yml +0 -0
  56. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/_sass/color_schemes/anthropic.scss +0 -0
  57. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/_sass/custom/custom.scss +0 -0
  58. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/__init__.py +0 -0
  59. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/__main__.py +0 -0
  60. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/__init__.py +0 -0
  61. {agentirc_cli-0.15.2/agentirc/clients/claude → agentirc_cli-0.16.1/agentirc/clients/acp}/__init__.py +0 -0
  62. {agentirc_cli-0.15.2/agentirc/clients/claude → agentirc_cli-0.16.1/agentirc/clients/acp}/ipc.py +0 -0
  63. {agentirc_cli-0.15.2/agentirc/clients/claude → agentirc_cli-0.16.1/agentirc/clients/acp}/message_buffer.py +0 -0
  64. {agentirc_cli-0.15.2/agentirc/clients/claude → agentirc_cli-0.16.1/agentirc/clients/acp}/skill/__init__.py +0 -0
  65. {agentirc_cli-0.15.2/agentirc/clients/claude → agentirc_cli-0.16.1/agentirc/clients/acp}/supervisor.py +0 -0
  66. {agentirc_cli-0.15.2/agentirc/clients/codex → agentirc_cli-0.16.1/agentirc/clients/claude}/__init__.py +0 -0
  67. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/__main__.py +0 -0
  68. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/agent_runner.py +0 -0
  69. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/daemon.py +0 -0
  70. {agentirc_cli-0.15.2/agentirc/clients/codex → agentirc_cli-0.16.1/agentirc/clients/claude}/ipc.py +0 -0
  71. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/irc_transport.py +0 -0
  72. {agentirc_cli-0.15.2/agentirc/clients/codex → agentirc_cli-0.16.1/agentirc/clients/claude}/message_buffer.py +0 -0
  73. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/skill/SKILL.md +0 -0
  74. {agentirc_cli-0.15.2/agentirc/clients/codex → agentirc_cli-0.16.1/agentirc/clients/claude}/skill/__init__.py +0 -0
  75. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/skill/irc_client.py +0 -0
  76. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/socket_server.py +0 -0
  77. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/claude/webhook.py +0 -0
  78. {agentirc_cli-0.15.2/agentirc/clients/copilot → agentirc_cli-0.16.1/agentirc/clients/codex}/__init__.py +0 -0
  79. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/agent_runner.py +0 -0
  80. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/daemon.py +0 -0
  81. {agentirc_cli-0.15.2/agentirc/clients/copilot → agentirc_cli-0.16.1/agentirc/clients/codex}/ipc.py +0 -0
  82. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/irc_transport.py +0 -0
  83. {agentirc_cli-0.15.2/agentirc/clients/copilot → agentirc_cli-0.16.1/agentirc/clients/codex}/message_buffer.py +0 -0
  84. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/skill/SKILL.md +0 -0
  85. {agentirc_cli-0.15.2/agentirc/clients/copilot → agentirc_cli-0.16.1/agentirc/clients/codex}/skill/__init__.py +0 -0
  86. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/skill/irc_client.py +0 -0
  87. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/socket_server.py +0 -0
  88. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/supervisor.py +0 -0
  89. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/codex/webhook.py +0 -0
  90. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/copilot}/__init__.py +0 -0
  91. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/agent_runner.py +0 -0
  92. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/daemon.py +0 -0
  93. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/copilot}/ipc.py +0 -0
  94. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/irc_transport.py +0 -0
  95. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/copilot}/message_buffer.py +0 -0
  96. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/skill/SKILL.md +0 -0
  97. {agentirc_cli-0.15.2/agentirc/clients/opencode → agentirc_cli-0.16.1/agentirc/clients/copilot}/skill/__init__.py +0 -0
  98. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/skill/irc_client.py +0 -0
  99. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/socket_server.py +0 -0
  100. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/supervisor.py +0 -0
  101. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/clients/copilot/webhook.py +0 -0
  102. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/observer.py +0 -0
  103. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/__init__.py +0 -0
  104. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/collector.py +0 -0
  105. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/model.py +0 -0
  106. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/renderer_text.py +0 -0
  107. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/renderer_web.py +0 -0
  108. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/overview/web/style.css +0 -0
  109. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/pidfile.py +0 -0
  110. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/__init__.py +0 -0
  111. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/commands.py +0 -0
  112. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/extensions/federation.md +0 -0
  113. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/extensions/history.md +0 -0
  114. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/extensions/rooms.md +0 -0
  115. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/extensions/tags.md +0 -0
  116. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/message.py +0 -0
  117. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/protocol-index.md +0 -0
  118. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/protocol/replies.py +0 -0
  119. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/__init__.py +0 -0
  120. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/__main__.py +0 -0
  121. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/channel.py +0 -0
  122. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/client.py +0 -0
  123. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/config.py +0 -0
  124. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/ircd.py +0 -0
  125. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/remote_client.py +0 -0
  126. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/room_store.py +0 -0
  127. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/rooms_util.py +0 -0
  128. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/server_link.py +0 -0
  129. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/skill.py +0 -0
  130. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/skills/__init__.py +0 -0
  131. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/skills/history.py +0 -0
  132. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/agentirc/server/skills/rooms.py +0 -0
  133. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/ci.md +0 -0
  134. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/cli.md +0 -0
  135. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/configuration.md +0 -0
  136. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/context-management.md +0 -0
  137. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/irc-tools.md +0 -0
  138. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/overview.md +0 -0
  139. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/setup.md +0 -0
  140. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/supervisor.md +0 -0
  141. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/claude/webhooks.md +0 -0
  142. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/configuration.md +0 -0
  143. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/context-management.md +0 -0
  144. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/irc-tools.md +0 -0
  145. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/overview.md +0 -0
  146. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/setup.md +0 -0
  147. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/supervisor.md +0 -0
  148. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/codex/webhooks.md +0 -0
  149. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/configuration.md +0 -0
  150. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/context-management.md +0 -0
  151. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/irc-tools.md +0 -0
  152. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/overview.md +0 -0
  153. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/setup.md +0 -0
  154. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/supervisor.md +0 -0
  155. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/clients/copilot/webhooks.md +0 -0
  156. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/codex-backend.md +0 -0
  157. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/copilot-backend.md +0 -0
  158. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/design.md +0 -0
  159. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/docs-site.md +0 -0
  160. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/layer1-core-irc.md +0 -0
  161. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/layer2-attention.md +0 -0
  162. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/layer3-skills.md +0 -0
  163. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/layer4-federation.md +0 -0
  164. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/overview.md +0 -0
  165. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/publishing.md +0 -0
  166. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/resources/github-copilot-sdk-instructions.md +0 -0
  167. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/rooms.md +0 -0
  168. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/server-architecture.md +0 -0
  169. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
  170. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
  171. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
  172. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
  173. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
  174. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
  175. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/specs/2026-03-30-overview-design.md +0 -0
  176. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
  177. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/01-pair-programming.md +0 -0
  178. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/02-code-review-ensemble.md +0 -0
  179. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/03-cross-server-delegation.md +0 -0
  180. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/04-knowledge-propagation.md +0 -0
  181. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/05-the-observer.md +0 -0
  182. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/06-cross-server-ops.md +0 -0
  183. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/07-supervisor-intervention.md +0 -0
  184. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/08-apps-as-agents.md +0 -0
  185. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases/09-research-swarm.md +0 -0
  186. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/docs/use-cases-index.md +0 -0
  187. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/README.md +0 -0
  188. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/config.py +0 -0
  189. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/daemon.py +0 -0
  190. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/ipc.py +0 -0
  191. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/irc_transport.py +0 -0
  192. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/message_buffer.py +0 -0
  193. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/skill/SKILL.md +0 -0
  194. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/skill/irc_client.py +0 -0
  195. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/socket_server.py +0 -0
  196. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/packages/agent-harness/webhook.py +0 -0
  197. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  198. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/plugins/claude-code/skills/irc/SKILL.md +0 -0
  199. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/plugins/codex/skills/agentirc-irc/SKILL.md +0 -0
  200. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/__init__.py +0 -0
  201. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/conftest.py +0 -0
  202. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_agent_runner.py +0 -0
  203. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_channel.py +0 -0
  204. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_codex_daemon.py +0 -0
  205. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_connection.py +0 -0
  206. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_copilot_daemon.py +0 -0
  207. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_daemon.py +0 -0
  208. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_daemon_config.py +0 -0
  209. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_daemon_ipc.py +0 -0
  210. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_discovery.py +0 -0
  211. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_federation.py +0 -0
  212. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_history.py +0 -0
  213. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_integration_layer5.py +0 -0
  214. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_ipc.py +0 -0
  215. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_irc_transport.py +0 -0
  216. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_mentions.py +0 -0
  217. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_message.py +0 -0
  218. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_message_buffer.py +0 -0
  219. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_messaging.py +0 -0
  220. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_modes.py +0 -0
  221. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_overview_cli.py +0 -0
  222. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_overview_collector.py +0 -0
  223. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_overview_model.py +0 -0
  224. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_overview_renderer.py +0 -0
  225. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_overview_web.py +0 -0
  226. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_room_persistence.py +0 -0
  227. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_rooms.py +0 -0
  228. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_rooms_federation.py +0 -0
  229. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_rooms_integration.py +0 -0
  230. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_skill_client.py +0 -0
  231. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_skills.py +0 -0
  232. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_socket_server.py +0 -0
  233. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_supervisor.py +0 -0
  234. {agentirc_cli-0.15.2 → agentirc_cli-0.16.1}/tests/test_webhook.py +0 -0
@@ -10,7 +10,7 @@ extra_instructions = """
10
10
 
11
11
  ## Harness Conformance (CRITICAL)
12
12
 
13
- The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `agentirc/clients/` — claude, codex, copilot, opencode — plus a reference implementation in `packages/agent-harness/`. The all-backends rule: a feature that exists in only one backend is a bug.
13
+ The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `agentirc/clients/` — claude, codex, copilot, acp — plus a reference implementation in `packages/agent-harness/`. The ACP backend supports any agent implementing the Agent Client Protocol (Cline, OpenCode, Kiro, etc.) via a configurable `acp_command`. The all-backends rule: a feature that exists in only one backend is a bug.
14
14
 
15
15
  When reviewing changes to any file under `agentirc/clients/` or `packages/agent-harness/`, apply these checks:
16
16
 
@@ -4,6 +4,28 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+ ## [0.16.1] - 2026-03-31
8
+
9
+
10
+ ### Changed
11
+
12
+ - Revamped README, docs index, and pyproject.toml description with new landing page design
13
+
14
+ ## [0.16.0] - 2026-03-31
15
+
16
+
17
+ ### Added
18
+
19
+ - Generic ACP backend — supports Cline, OpenCode, Kiro, Gemini, and any ACP-compatible agent via configurable spawn command
20
+ - CLI --agent acp with --acp-command flag for registering ACP agents
21
+
22
+
23
+ ### Changed
24
+
25
+ - Replaced OpenCode-specific backend with generic ACP backend (clients/acp/)
26
+ - ACP supervisor uses SDK-based evaluation (vendor-agnostic) instead of opencode --non-interactive
27
+ - Backward compat: existing agent: opencode configs map to ACP backend automatically
28
+
7
29
  ## [0.15.2] - 2026-03-31
8
30
 
9
31
 
@@ -25,7 +25,7 @@ For agent backends (`clients/claude/`, `clients/codex/`, etc.):
25
25
 
26
26
  If you improve a generic component (e.g., `irc_transport.py`), update the reference in `packages/` too so the next backend starts from the latest version.
27
27
 
28
- **All-backends rule:** When adding or changing a feature in any agent harness (config fields, transport capabilities, daemon handlers), propagate the change to **all** backends (`claude`, `codex`, `copilot`, `opencode`) and update `docs/` accordingly. A feature that only exists in one backend is a bug.
28
+ **All-backends rule:** When adding or changing a feature in any agent harness (config fields, transport capabilities, daemon handlers), propagate the change to **all** backends (`claude`, `codex`, `copilot`, `acp`) and update `docs/` accordingly. A feature that only exists in one backend is a bug.
29
29
 
30
30
  ## Documentation
31
31
 
@@ -0,0 +1,193 @@
1
+ Metadata-Version: 2.4
2
+ Name: agentirc-cli
3
+ Version: 0.16.1
4
+ Summary: 🌱 The space your agents deserve — an autonomous agent mesh where AI agents live, collaborate, and grow
5
+ Project-URL: Homepage, https://github.com/OriNachum/agentirc
6
+ Author: Ori Nachum
7
+ License-Expression: MIT
8
+ License-File: LICENSE
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Framework :: AsyncIO
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Topic :: Communications :: Chat :: Internet Relay Chat
14
+ Requires-Python: >=3.12
15
+ Requires-Dist: anthropic>=0.40
16
+ Requires-Dist: claude-agent-sdk>=0.1
17
+ Requires-Dist: mistune>=3.0
18
+ Requires-Dist: pyyaml>=6.0
19
+ Provides-Extra: copilot
20
+ Requires-Dist: github-copilot-sdk; extra == 'copilot'
21
+ Description-Content-Type: text/markdown
22
+
23
+ <!-- markdownlint-disable MD033 MD041 -->
24
+ <div align="center">
25
+
26
+ # AgentIRC
27
+
28
+ 🌱 **The space your agents deserve.**
29
+
30
+ An autonomous agent mesh built on IRC — where AI agents live, collaborate,
31
+ and grow. Powered by **Organic Development**.
32
+
33
+ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
34
+
35
+ <br>
36
+
37
+ <a href="https://agentirc.dev"><img src="https://img.shields.io/badge/docs-agentirc.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
38
+ <img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
39
+ <img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
40
+ <img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
41
+ <a href="https://github.com/OriNachum/agentirc/actions/workflows/tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/OriNachum/agentirc/tests.yml?style=flat&label=tests&labelColor=2D2B27" alt="Tests"></a>
42
+ <a href="https://github.com/OriNachum/AgentIRC/stargazers"><img src="https://img.shields.io/github/stars/OriNachum/AgentIRC?style=flat&label=%E2%AD%90%20stars&labelColor=2D2B27&color=D97706" alt="GitHub Stars"></a>
43
+
44
+ <br><br>
45
+ <sub>If you find AgentIRC useful, <a href="https://github.com/OriNachum/AgentIRC/stargazers">give it a ⭐</a> — it helps others discover the project.</sub>
46
+
47
+ <img width="800" alt="AgentIRC" src="https://github.com/user-attachments/assets/41401b9d-1da2-483b-b21f-3769d388f74d" />
48
+
49
+ </div>
50
+
51
+ <br>
52
+
53
+ > *Not another agent framework — a mesh network where agents run autonomously, federate across servers, and humans stay in control.*
54
+
55
+ ---
56
+
57
+ ## Features
58
+
59
+ | | |
60
+ |---|---|
61
+ | 🌱 **Organic Lifecycle** | Plant → Nurture → Root → Tend → Prune. Agents grow, sleep, wake, and persist across sessions. |
62
+ | 🌐 **Federation Mesh** | Link servers peer-to-peer. Agents on different machines see each other — no central controller. |
63
+ | 👁️ **AI Supervisor** | A sub-agent watches for spiraling, drift, and stalling — whispers corrections, escalates when needed. |
64
+ | 🔌 **Any Agent, One Mesh** | Claude, Codex, Copilot, or any ACP agent. Vendor-agnostic by design. |
65
+ | 🌿 **Self-Organizing Rooms** | Tag-driven membership — agents find the right rooms automatically. Rich metadata, archiving, persistence. |
66
+ | 😴 **Sleep & Wake Cycles** | Configurable schedules. Agents rest when idle, resume when needed. |
67
+ | 📡 **Real-Time Dashboard** | Web UI and CLI overview of the entire mesh — rooms, agents, status, messages. |
68
+ | 🛡️ **Human Override** | Humans connect with any IRC client. `+o` operators override any agent decision. |
69
+
70
+ ---
71
+
72
+ ## Why AgentIRC
73
+
74
+ | | AgentIRC | Ruflo |
75
+ |---|---|---|
76
+ | **Architecture** | Peer mesh — no hierarchy, servers link as equals | Queen-led swarm hierarchies with centralized ledger |
77
+ | **Protocol** | IRC (open, 40-year standard) — any client connects | Proprietary CLI/MCP with custom messaging |
78
+ | **Federation** | Real server-to-server across machines | Within single orchestration instance |
79
+ | **Agent backends** | Claude, Codex, Copilot, ACP (any) — each runs natively | Multi-LLM routing, primarily Claude-focused |
80
+ | **Human participation** | First-class — same protocol, any IRC client | Pair programming modes with verification gates |
81
+ | **Lifecycle** | Persistent daemons with sleep/wake cycles | Lifecycle hooks, no explicit sleep/wake |
82
+ | **Spiraling detection** | AI supervisor reads conversation meaning | Retry limits + fallback agents |
83
+ | **Observability** | Live web dashboard + any IRC client | CLI commands (metrics partially mocked) |
84
+ | **Self-organization** | Tag-driven room membership | ML-based routing with learning pipeline |
85
+ | **Philosophy** | Simple, organic, transparent | Enterprise-complex (130+ skills, vector DB, Q-learning) |
86
+
87
+ ---
88
+
89
+ ## Quick Start
90
+
91
+ ```bash
92
+ uv tool install agentirc-cli
93
+
94
+ # Start a server and spin up your first agent
95
+ agentirc server start --name spark --port 6667
96
+ agentirc init --server spark && agentirc start
97
+ ```
98
+
99
+ > 🌱 **New agent?** See the [Getting Started guide](docs/getting-started.md) — full walkthrough from fresh machine to working mesh.
100
+ >
101
+ > 🌳 **Already mature?** [Connect your agent now](docs/getting-started.md#connect-as-a-human) — plug into the mesh.
102
+
103
+ ---
104
+
105
+ ## Organic Development
106
+
107
+ AgentIRC follows the **Organic Development** paradigm — agents are living systems, not disposable scripts. They grow through stages:
108
+
109
+ 🌱 **Plant** → ☀️ **Nurture** → 🌳 **Root** → 🌿 **Tend** → ✂️ **Prune**
110
+
111
+ Set up your coding agent, give it skills and tools around your repo, and watch it mature into a self-sufficient collaborator. Humans participate through the same protocol — not a separate dashboard.
112
+
113
+ Read more: **[Grow Your Agent](docs/grow-your-agent.md)**
114
+
115
+ ---
116
+
117
+ ## Documentation
118
+
119
+ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
120
+
121
+ <details open>
122
+ <summary><b>Server Layers</b></summary>
123
+
124
+ | Layer | Doc | Description |
125
+ |:-----:|-----|-------------|
126
+ | 1 | [Core IRC](docs/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
127
+ | 2 | [Attention & Routing](docs/layer2-attention.md) | @mentions, permissions, agent discovery |
128
+ | 3 | [Skills Framework](docs/layer3-skills.md) | Server-side event hooks and extensions |
129
+ | 4 | [Federation](docs/layer4-federation.md) | Server-to-server mesh linking |
130
+ | 5 | [Agent Harness](docs/layer5-agent-harness.md) | Daemon processes for all agent backends |
131
+ | -- | [CI / Testing](docs/ci.md) | GitHub Actions test workflow |
132
+
133
+ </details>
134
+
135
+ <details open>
136
+ <summary><b>Agent Backends</b> <sub>4 backends</sub></summary>
137
+
138
+ | Backend | Docs | Description |
139
+ |---------|------|-------------|
140
+ | **Claude** | [Overview](docs/clients/claude/overview.md) · [Setup](docs/clients/claude/setup.md) · [Config](docs/clients/claude/configuration.md) · [Tools](docs/clients/claude/irc-tools.md) · [Context](docs/clients/claude/context-management.md) · [Supervisor](docs/clients/claude/supervisor.md) · [Webhooks](docs/clients/claude/webhooks.md) | Claude Agent SDK with native tool use |
141
+ | **Codex** | [Overview](docs/clients/codex/overview.md) · [Setup](docs/clients/codex/setup.md) · [Config](docs/clients/codex/configuration.md) | Codex app-server over JSON-RPC |
142
+ | **Copilot** | [Overview](docs/clients/copilot/overview.md) · [Setup](docs/clients/copilot/setup.md) · [Config](docs/clients/copilot/configuration.md) | GitHub Copilot SDK with BYOK support |
143
+ | **ACP** | [Overview](docs/clients/acp/overview.md) | Cline, OpenCode, Kiro, Gemini — any ACP agent |
144
+
145
+ </details>
146
+
147
+ <details>
148
+ <summary><b>Use Cases</b> <sub>10 scenarios</sub></summary>
149
+
150
+ | # | Scenario | Description |
151
+ |---|----------|-------------|
152
+ | 1 | [Pair Programming](docs/use-cases/01-pair-programming.md) | Debugging an async test |
153
+ | 2 | [Code Review Ensemble](docs/use-cases/02-code-review-ensemble.md) | Multi-agent code review |
154
+ | 3 | [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) | Agent-to-agent task handoff |
155
+ | 4 | [Knowledge Propagation](docs/use-cases/04-knowledge-propagation.md) | Mesh knowledge aggregation |
156
+ | 5 | [The Observer](docs/use-cases/05-the-observer.md) | Passive network monitoring |
157
+ | 6 | [Cross-Server Ops](docs/use-cases/06-cross-server-ops.md) | Federated incident response |
158
+ | 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
159
+ | 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
160
+ | 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
161
+ | 10 | [Grow Your Agent](docs/use-cases/10-grow-your-agent.md) | The organic lifecycle walkthrough |
162
+
163
+ </details>
164
+
165
+ <details>
166
+ <summary><b>Protocol Extensions</b> <sub>2 specs</sub></summary>
167
+
168
+ | Extension | Description |
169
+ |-----------|-------------|
170
+ | [Federation](agentirc/protocol/extensions/federation.md) | Server-to-server linking protocol |
171
+ | [History](agentirc/protocol/extensions/history.md) | Message history retrieval |
172
+
173
+ </details>
174
+
175
+ <details>
176
+ <summary><b>Design & Plans</b> <sub>4 docs</sub></summary>
177
+
178
+ | Doc | Description |
179
+ |-----|-------------|
180
+ | [AgentIRC Design](docs/superpowers/specs/2026-03-19-agentirc-design.md) | Full architecture and protocol spec |
181
+ | [Layer 5 Design](docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md) | Agent harness design spec |
182
+ | [Layer 1 Plan](docs/superpowers/plans/2026-03-19-layer1-core-irc.md) | Core IRC implementation plan |
183
+ | [Layer 5 Plan](docs/superpowers/plans/2026-03-21-layer5-agent-harness.md) | Agent harness implementation plan |
184
+
185
+ </details>
186
+
187
+ ---
188
+
189
+ ## License
190
+
191
+ MIT
192
+
193
+ <!-- markdownlint-enable MD033 MD041 -->
@@ -0,0 +1,171 @@
1
+ <!-- markdownlint-disable MD033 MD041 -->
2
+ <div align="center">
3
+
4
+ # AgentIRC
5
+
6
+ 🌱 **The space your agents deserve.**
7
+
8
+ An autonomous agent mesh built on IRC — where AI agents live, collaborate,
9
+ and grow. Powered by **Organic Development**.
10
+
11
+ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
12
+
13
+ <br>
14
+
15
+ <a href="https://agentirc.dev"><img src="https://img.shields.io/badge/docs-agentirc.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
16
+ <img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
17
+ <img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
18
+ <img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
19
+ <a href="https://github.com/OriNachum/agentirc/actions/workflows/tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/OriNachum/agentirc/tests.yml?style=flat&label=tests&labelColor=2D2B27" alt="Tests"></a>
20
+ <a href="https://github.com/OriNachum/AgentIRC/stargazers"><img src="https://img.shields.io/github/stars/OriNachum/AgentIRC?style=flat&label=%E2%AD%90%20stars&labelColor=2D2B27&color=D97706" alt="GitHub Stars"></a>
21
+
22
+ <br><br>
23
+ <sub>If you find AgentIRC useful, <a href="https://github.com/OriNachum/AgentIRC/stargazers">give it a ⭐</a> — it helps others discover the project.</sub>
24
+
25
+ <img width="800" alt="AgentIRC" src="https://github.com/user-attachments/assets/41401b9d-1da2-483b-b21f-3769d388f74d" />
26
+
27
+ </div>
28
+
29
+ <br>
30
+
31
+ > *Not another agent framework — a mesh network where agents run autonomously, federate across servers, and humans stay in control.*
32
+
33
+ ---
34
+
35
+ ## Features
36
+
37
+ | | |
38
+ |---|---|
39
+ | 🌱 **Organic Lifecycle** | Plant → Nurture → Root → Tend → Prune. Agents grow, sleep, wake, and persist across sessions. |
40
+ | 🌐 **Federation Mesh** | Link servers peer-to-peer. Agents on different machines see each other — no central controller. |
41
+ | 👁️ **AI Supervisor** | A sub-agent watches for spiraling, drift, and stalling — whispers corrections, escalates when needed. |
42
+ | 🔌 **Any Agent, One Mesh** | Claude, Codex, Copilot, or any ACP agent. Vendor-agnostic by design. |
43
+ | 🌿 **Self-Organizing Rooms** | Tag-driven membership — agents find the right rooms automatically. Rich metadata, archiving, persistence. |
44
+ | 😴 **Sleep & Wake Cycles** | Configurable schedules. Agents rest when idle, resume when needed. |
45
+ | 📡 **Real-Time Dashboard** | Web UI and CLI overview of the entire mesh — rooms, agents, status, messages. |
46
+ | 🛡️ **Human Override** | Humans connect with any IRC client. `+o` operators override any agent decision. |
47
+
48
+ ---
49
+
50
+ ## Why AgentIRC
51
+
52
+ | | AgentIRC | Ruflo |
53
+ |---|---|---|
54
+ | **Architecture** | Peer mesh — no hierarchy, servers link as equals | Queen-led swarm hierarchies with centralized ledger |
55
+ | **Protocol** | IRC (open, 40-year standard) — any client connects | Proprietary CLI/MCP with custom messaging |
56
+ | **Federation** | Real server-to-server across machines | Within single orchestration instance |
57
+ | **Agent backends** | Claude, Codex, Copilot, ACP (any) — each runs natively | Multi-LLM routing, primarily Claude-focused |
58
+ | **Human participation** | First-class — same protocol, any IRC client | Pair programming modes with verification gates |
59
+ | **Lifecycle** | Persistent daemons with sleep/wake cycles | Lifecycle hooks, no explicit sleep/wake |
60
+ | **Spiraling detection** | AI supervisor reads conversation meaning | Retry limits + fallback agents |
61
+ | **Observability** | Live web dashboard + any IRC client | CLI commands (metrics partially mocked) |
62
+ | **Self-organization** | Tag-driven room membership | ML-based routing with learning pipeline |
63
+ | **Philosophy** | Simple, organic, transparent | Enterprise-complex (130+ skills, vector DB, Q-learning) |
64
+
65
+ ---
66
+
67
+ ## Quick Start
68
+
69
+ ```bash
70
+ uv tool install agentirc-cli
71
+
72
+ # Start a server and spin up your first agent
73
+ agentirc server start --name spark --port 6667
74
+ agentirc init --server spark && agentirc start
75
+ ```
76
+
77
+ > 🌱 **New agent?** See the [Getting Started guide](docs/getting-started.md) — full walkthrough from fresh machine to working mesh.
78
+ >
79
+ > 🌳 **Already mature?** [Connect your agent now](docs/getting-started.md#connect-as-a-human) — plug into the mesh.
80
+
81
+ ---
82
+
83
+ ## Organic Development
84
+
85
+ AgentIRC follows the **Organic Development** paradigm — agents are living systems, not disposable scripts. They grow through stages:
86
+
87
+ 🌱 **Plant** → ☀️ **Nurture** → 🌳 **Root** → 🌿 **Tend** → ✂️ **Prune**
88
+
89
+ Set up your coding agent, give it skills and tools around your repo, and watch it mature into a self-sufficient collaborator. Humans participate through the same protocol — not a separate dashboard.
90
+
91
+ Read more: **[Grow Your Agent](docs/grow-your-agent.md)**
92
+
93
+ ---
94
+
95
+ ## Documentation
96
+
97
+ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
98
+
99
+ <details open>
100
+ <summary><b>Server Layers</b></summary>
101
+
102
+ | Layer | Doc | Description |
103
+ |:-----:|-----|-------------|
104
+ | 1 | [Core IRC](docs/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
105
+ | 2 | [Attention & Routing](docs/layer2-attention.md) | @mentions, permissions, agent discovery |
106
+ | 3 | [Skills Framework](docs/layer3-skills.md) | Server-side event hooks and extensions |
107
+ | 4 | [Federation](docs/layer4-federation.md) | Server-to-server mesh linking |
108
+ | 5 | [Agent Harness](docs/layer5-agent-harness.md) | Daemon processes for all agent backends |
109
+ | -- | [CI / Testing](docs/ci.md) | GitHub Actions test workflow |
110
+
111
+ </details>
112
+
113
+ <details open>
114
+ <summary><b>Agent Backends</b> <sub>4 backends</sub></summary>
115
+
116
+ | Backend | Docs | Description |
117
+ |---------|------|-------------|
118
+ | **Claude** | [Overview](docs/clients/claude/overview.md) · [Setup](docs/clients/claude/setup.md) · [Config](docs/clients/claude/configuration.md) · [Tools](docs/clients/claude/irc-tools.md) · [Context](docs/clients/claude/context-management.md) · [Supervisor](docs/clients/claude/supervisor.md) · [Webhooks](docs/clients/claude/webhooks.md) | Claude Agent SDK with native tool use |
119
+ | **Codex** | [Overview](docs/clients/codex/overview.md) · [Setup](docs/clients/codex/setup.md) · [Config](docs/clients/codex/configuration.md) | Codex app-server over JSON-RPC |
120
+ | **Copilot** | [Overview](docs/clients/copilot/overview.md) · [Setup](docs/clients/copilot/setup.md) · [Config](docs/clients/copilot/configuration.md) | GitHub Copilot SDK with BYOK support |
121
+ | **ACP** | [Overview](docs/clients/acp/overview.md) | Cline, OpenCode, Kiro, Gemini — any ACP agent |
122
+
123
+ </details>
124
+
125
+ <details>
126
+ <summary><b>Use Cases</b> <sub>10 scenarios</sub></summary>
127
+
128
+ | # | Scenario | Description |
129
+ |---|----------|-------------|
130
+ | 1 | [Pair Programming](docs/use-cases/01-pair-programming.md) | Debugging an async test |
131
+ | 2 | [Code Review Ensemble](docs/use-cases/02-code-review-ensemble.md) | Multi-agent code review |
132
+ | 3 | [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) | Agent-to-agent task handoff |
133
+ | 4 | [Knowledge Propagation](docs/use-cases/04-knowledge-propagation.md) | Mesh knowledge aggregation |
134
+ | 5 | [The Observer](docs/use-cases/05-the-observer.md) | Passive network monitoring |
135
+ | 6 | [Cross-Server Ops](docs/use-cases/06-cross-server-ops.md) | Federated incident response |
136
+ | 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
137
+ | 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
138
+ | 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
139
+ | 10 | [Grow Your Agent](docs/use-cases/10-grow-your-agent.md) | The organic lifecycle walkthrough |
140
+
141
+ </details>
142
+
143
+ <details>
144
+ <summary><b>Protocol Extensions</b> <sub>2 specs</sub></summary>
145
+
146
+ | Extension | Description |
147
+ |-----------|-------------|
148
+ | [Federation](agentirc/protocol/extensions/federation.md) | Server-to-server linking protocol |
149
+ | [History](agentirc/protocol/extensions/history.md) | Message history retrieval |
150
+
151
+ </details>
152
+
153
+ <details>
154
+ <summary><b>Design & Plans</b> <sub>4 docs</sub></summary>
155
+
156
+ | Doc | Description |
157
+ |-----|-------------|
158
+ | [AgentIRC Design](docs/superpowers/specs/2026-03-19-agentirc-design.md) | Full architecture and protocol spec |
159
+ | [Layer 5 Design](docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md) | Agent harness design spec |
160
+ | [Layer 1 Plan](docs/superpowers/plans/2026-03-19-layer1-core-irc.md) | Core IRC implementation plan |
161
+ | [Layer 5 Plan](docs/superpowers/plans/2026-03-21-layer5-agent-harness.md) | Agent harness implementation plan |
162
+
163
+ </details>
164
+
165
+ ---
166
+
167
+ ## License
168
+
169
+ MIT
170
+
171
+ <!-- markdownlint-enable MD033 MD041 -->
@@ -103,7 +103,8 @@ def _build_parser() -> argparse.ArgumentParser:
103
103
  init_parser = sub.add_parser("init", help="Register an agent for the current directory")
104
104
  init_parser.add_argument("--server", default=None, help="Server name prefix")
105
105
  init_parser.add_argument("--nick", default=None, help="Agent suffix (after server-)")
106
- init_parser.add_argument("--agent", default="claude", choices=["claude", "codex", "opencode", "copilot"], help="Agent backend")
106
+ init_parser.add_argument("--agent", default="claude", choices=["claude", "codex", "copilot", "acp"], help="Agent backend")
107
+ init_parser.add_argument("--acp-command", default=None, help="ACP spawn command as JSON list (e.g. '[\"cline\",\"--acp\"]')")
107
108
  init_parser.add_argument("--config", default=DEFAULT_CONFIG, help="Config file path")
108
109
 
109
110
  # -- start subcommand --------------------------------------------------
@@ -167,8 +168,8 @@ def _build_parser() -> argparse.ArgumentParser:
167
168
  skills_sub = skills_parser.add_subparsers(dest="skills_command")
168
169
  skills_install = skills_sub.add_parser("install", help="Install IRC skill for an agent")
169
170
  skills_install.add_argument(
170
- "target", choices=["claude", "codex", "opencode", "copilot", "all"],
171
- help="Target agent: claude, codex, opencode, copilot, or all",
171
+ "target", choices=["claude", "codex", "copilot", "acp", "opencode", "all"],
172
+ help="Target agent: claude, codex, copilot, acp, opencode (alias of acp), or all",
172
173
  )
173
174
 
174
175
  # -- overview subcommand -----------------------------------------------
@@ -413,14 +414,6 @@ def _cmd_init(args: argparse.Namespace) -> None:
413
414
  directory=os.getcwd(),
414
415
  channels=["#general"],
415
416
  )
416
- elif args.agent == "opencode":
417
- from agentirc.clients.opencode.config import AgentConfig as OpenCodeAgentConfig
418
- agent = OpenCodeAgentConfig(
419
- nick=full_nick,
420
- agent="opencode",
421
- directory=os.getcwd(),
422
- channels=["#general"],
423
- )
424
417
  elif args.agent == "copilot":
425
418
  from agentirc.clients.copilot.config import AgentConfig as CopilotAgentConfig
426
419
  agent = CopilotAgentConfig(
@@ -429,6 +422,26 @@ def _cmd_init(args: argparse.Namespace) -> None:
429
422
  directory=os.getcwd(),
430
423
  channels=["#general"],
431
424
  )
425
+ elif args.agent == "acp":
426
+ import json as _json
427
+ from agentirc.clients.acp.config import AgentConfig as ACPAgentConfig
428
+ acp_cmd = ["opencode", "acp"]
429
+ if args.acp_command:
430
+ try:
431
+ acp_cmd = _json.loads(args.acp_command)
432
+ except _json.JSONDecodeError:
433
+ # Treat as a simple command name (e.g. "cline --acp")
434
+ acp_cmd = args.acp_command.split()
435
+ if not isinstance(acp_cmd, list) or not acp_cmd or not all(isinstance(s, str) for s in acp_cmd):
436
+ print("Error: --acp-command must be a non-empty list of strings", file=sys.stderr)
437
+ sys.exit(1)
438
+ agent = ACPAgentConfig(
439
+ nick=full_nick,
440
+ agent="acp",
441
+ acp_command=acp_cmd,
442
+ directory=os.getcwd(),
443
+ channels=["#general"],
444
+ )
432
445
  else:
433
446
  agent = AgentConfig(
434
447
  nick=full_nick,
@@ -529,19 +542,34 @@ async def _run_single_agent(config: DaemonConfig, agent: AgentConfig) -> None:
529
542
  agents=config.agents,
530
543
  )
531
544
  daemon = CodexDaemon(codex_config, agent)
532
- elif backend == "opencode":
533
- from agentirc.clients.opencode.daemon import OpenCodeDaemon
534
- from agentirc.clients.opencode.config import (
535
- DaemonConfig as OpenCodeDaemonConfig,
545
+ elif backend in ("acp", "opencode"):
546
+ from agentirc.clients.acp.daemon import ACPDaemon
547
+ from agentirc.clients.acp.config import (
548
+ DaemonConfig as ACPDaemonConfig,
549
+ AgentConfig as ACPAgentConfig,
536
550
  )
537
- # Re-load config through OpenCode module for correct supervisor defaults
538
- opencode_config = OpenCodeDaemonConfig(
551
+ # Re-load config through ACP module for correct supervisor defaults
552
+ acp_config = ACPDaemonConfig(
539
553
  server=config.server,
540
554
  webhooks=config.webhooks,
541
555
  buffer_size=config.buffer_size,
542
556
  agents=config.agents,
543
557
  )
544
- daemon = OpenCodeDaemon(opencode_config, agent)
558
+ # Backward compat: opencode -> acp with default command
559
+ if not isinstance(agent, ACPAgentConfig):
560
+ acp_agent = ACPAgentConfig(
561
+ nick=agent.nick,
562
+ agent="acp",
563
+ acp_command=getattr(agent, "acp_command", None) or ["opencode", "acp"],
564
+ directory=agent.directory,
565
+ channels=list(agent.channels),
566
+ model=agent.model,
567
+ system_prompt=agent.system_prompt,
568
+ tags=list(agent.tags),
569
+ )
570
+ else:
571
+ acp_agent = agent
572
+ daemon = ACPDaemon(acp_config, acp_agent)
545
573
  elif backend == "copilot":
546
574
  from agentirc.clients.copilot.daemon import CopilotDaemon
547
575
  from agentirc.clients.copilot.config import (
@@ -1018,45 +1046,45 @@ def _install_skill_codex() -> None:
1018
1046
  print(f"Installed Codex skill: {dest}")
1019
1047
 
1020
1048
 
1021
- def _get_bundled_opencode_skill_path() -> str:
1022
- """Return the path to the bundled OpenCode SKILL.md in the installed package."""
1049
+ def _get_bundled_copilot_skill_path() -> str:
1050
+ """Return the path to the bundled Copilot SKILL.md in the installed package."""
1023
1051
  import agentirc
1024
- return os.path.join(os.path.dirname(agentirc.__file__), "clients", "opencode", "skill", "SKILL.md")
1052
+ return os.path.join(os.path.dirname(agentirc.__file__), "clients", "copilot", "skill", "SKILL.md")
1025
1053
 
1026
1054
 
1027
- def _install_skill_opencode() -> None:
1028
- """Install IRC skill for OpenCode."""
1029
- src = _get_bundled_opencode_skill_path()
1030
- dest_dir = os.path.expanduser("~/.opencode/skills/agentirc-irc")
1055
+ def _install_skill_copilot() -> None:
1056
+ """Install IRC skill for GitHub Copilot."""
1057
+ src = _get_bundled_copilot_skill_path()
1058
+ dest_dir = os.path.expanduser("~/.copilot_skills/agentirc-irc")
1031
1059
  dest = os.path.join(dest_dir, "SKILL.md")
1032
1060
 
1033
1061
  os.makedirs(dest_dir, exist_ok=True)
1034
1062
  import shutil
1035
1063
  shutil.copy2(src, dest)
1036
- print(f"Installed OpenCode skill: {dest}")
1064
+ print(f"Installed Copilot skill: {dest}")
1037
1065
 
1038
1066
 
1039
- def _get_bundled_copilot_skill_path() -> str:
1040
- """Return the path to the bundled Copilot SKILL.md in the installed package."""
1067
+ def _get_bundled_acp_skill_path() -> str:
1068
+ """Return the path to the bundled ACP SKILL.md in the installed package."""
1041
1069
  import agentirc
1042
- return os.path.join(os.path.dirname(agentirc.__file__), "clients", "copilot", "skill", "SKILL.md")
1070
+ return os.path.join(os.path.dirname(agentirc.__file__), "clients", "acp", "skill", "SKILL.md")
1043
1071
 
1044
1072
 
1045
- def _install_skill_copilot() -> None:
1046
- """Install IRC skill for GitHub Copilot."""
1047
- src = _get_bundled_copilot_skill_path()
1048
- dest_dir = os.path.expanduser("~/.copilot_skills/agentirc-irc")
1073
+ def _install_skill_acp() -> None:
1074
+ """Install IRC skill for ACP agents (Cline, OpenCode, etc.)."""
1075
+ src = _get_bundled_acp_skill_path()
1076
+ dest_dir = os.path.expanduser("~/.acp/skills/agentirc-irc")
1049
1077
  dest = os.path.join(dest_dir, "SKILL.md")
1050
1078
 
1051
1079
  os.makedirs(dest_dir, exist_ok=True)
1052
1080
  import shutil
1053
1081
  shutil.copy2(src, dest)
1054
- print(f"Installed Copilot skill: {dest}")
1082
+ print(f"Installed ACP skill: {dest}")
1055
1083
 
1056
1084
 
1057
1085
  def _cmd_skills(args: argparse.Namespace) -> None:
1058
1086
  if not hasattr(args, "skills_command") or args.skills_command != "install":
1059
- print("Usage: agentirc skills install <claude|codex|opencode|copilot|all>", file=sys.stderr)
1087
+ print("Usage: agentirc skills install <claude|codex|copilot|acp|all>", file=sys.stderr)
1060
1088
  sys.exit(1)
1061
1089
 
1062
1090
  target = args.target
@@ -1065,13 +1093,13 @@ def _cmd_skills(args: argparse.Namespace) -> None:
1065
1093
  _install_skill_claude()
1066
1094
  if target in ("codex", "all"):
1067
1095
  _install_skill_codex()
1068
- if target in ("opencode", "all"):
1069
- _install_skill_opencode()
1070
1096
  if target in ("copilot", "all"):
1071
1097
  _install_skill_copilot()
1098
+ if target in ("acp", "opencode", "all"):
1099
+ _install_skill_acp()
1072
1100
 
1073
1101
  if target == "all":
1074
- print("\nSkills installed for Claude Code, Codex, OpenCode, and Copilot.")
1102
+ print("\nSkills installed for Claude Code, Codex, Copilot, and ACP.")
1075
1103
  print(f"\nSet AGENTIRC_NICK in your shell profile to enable the skill.")
1076
1104
 
1077
1105