agentirc-cli 1.0.7__tar.gz → 2.0.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.
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.pr_agent.toml +6 -6
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/CHANGELOG.md +46 -0
- agentirc_cli-2.0.1/CNAME +1 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/PKG-INFO +35 -36
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/README.md +34 -35
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/SECURITY.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/_config.yml +4 -3
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/cli.py +62 -20
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/learn_prompt.py +2 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/skills/culture/SKILL.md +15 -7
- agentirc_cli-2.0.1/docs/agent-lifecycle.md +261 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/agentic-self-learn.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/agent-client.md +5 -5
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/agent-harness-spec.md +1 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/design.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/harness-conformance.md +1 -1
- agentirc_cli-2.0.1/docs/architecture/index.md +16 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/layer1-core-irc.md +2 -2
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/layer2-attention.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/layer3-skills.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/layer4-federation.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/layer5-agent-harness.md +5 -5
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/server-architecture.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/architecture}/threads.md +6 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/acp/overview.md +4 -4
- agentirc_cli-2.0.1/docs/culture-cli.md +111 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/getting-started.md +35 -34
- agentirc_cli-2.0.1/docs/index.md +113 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/SECURITY.md +1 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/bots.md +5 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/ci.md +1 -1
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/cli.md +23 -7
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/docs-site.md +3 -3
- agentirc_cli-2.0.1/docs/operations/index.md +14 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/ops-tooling.md +1 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/overview.md +5 -0
- {agentirc_cli-1.0.7/docs → agentirc_cli-2.0.1/docs/operations}/publishing.md +5 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/rooms.md +7 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-04-02-conversation-threads.md +1 -1
- agentirc_cli-2.0.1/docs/superpowers/plans/2026-04-05-docs-speak-culture.md +1205 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-03-19-agentirc-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-03-30-overview-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +1 -1
- agentirc_cli-2.0.1/docs/superpowers/specs/2026-04-05-docs-speak-culture-design.md +277 -0
- agentirc_cli-2.0.1/docs/superpowers/specs/2026-04-05-lifecycle-reframe-design.md +219 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/05-the-observer.md +14 -13
- agentirc_cli-1.0.7/docs/use-cases/10-grow-your-agent.md → agentirc_cli-2.0.1/docs/use-cases/10-agent-lifecycle.md +69 -80
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases-index.md +5 -3
- agentirc_cli-2.0.1/docs/what-is-culture.md +59 -0
- agentirc_cli-2.0.1/plugins/claude-code/.claude-plugin/plugin.json +6 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/pyproject.toml +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/uv.lock +1 -1
- agentirc_cli-1.0.7/CNAME +0 -1
- agentirc_cli-1.0.7/docs/codex-backend.md +0 -6
- agentirc_cli-1.0.7/docs/copilot-backend.md +0 -6
- agentirc_cli-1.0.7/docs/grow-your-agent.md +0 -231
- agentirc_cli-1.0.7/index.md +0 -112
- agentirc_cli-1.0.7/plugins/claude-code/.claude-plugin/plugin.json +0 -6
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.claude/skills/pr-review/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.claude/skills/run-tests/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.flake8 +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.github/workflows/pages.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.github/workflows/publish.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.github/workflows/security-checks.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.github/workflows/tests.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.gitignore +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.markdownlint-cli2.yaml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.pre-commit-config.yaml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/.pylintrc +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/CLAUDE.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/Gemfile +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/Gemfile.lock +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/LICENSE +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/_sass/color_schemes/anthropic.scss +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/_sass/custom/custom.scss +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/bot.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/bot_manager.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/http_listener.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/template_engine.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/bots/virtual_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/acp/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/claude/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/codex/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/clients/copilot/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/credentials.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/mesh_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/observer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/collector.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/model.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/renderer_text.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/renderer_web.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/overview/web/style.css +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/pidfile.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/commands.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/extensions/federation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/extensions/history.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/extensions/rooms.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/extensions/tags.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/extensions/threads.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/message.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/protocol-index.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/protocol/replies.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/channel.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/ircd.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/remote_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/room_store.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/rooms_util.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/server_link.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/skill.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/skills/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/skills/history.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/skills/rooms.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/skills/threads.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/culture/server/thread_store.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/claude/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/codex/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/clients/copilot/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/resources/github-copilot-sdk-instructions.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-04-02-ops-tooling.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/plans/2026-04-04-culture-rename.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/superpowers/specs/2026-04-04-culture-rename-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/01-pair-programming.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/02-code-review-ensemble.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/03-cross-server-delegation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/04-knowledge-propagation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/06-cross-server-ops.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/07-supervisor-intervention.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/08-apps-as-agents.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/docs/use-cases/09-research-swarm.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/README.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/packages/agent-harness/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/plugins/claude-code/skills/culture/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/plugins/claude-code/skills/irc/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/plugins/codex/skills/culture-irc/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/sonar-project.properties +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/conftest.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_acp_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_bot.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_bot_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_bot_manager.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_bots_integration.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_channel.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_codex_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_connection.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_copilot_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_daemon_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_daemon_ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_discovery.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_federation.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_history.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_http_listener.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_integration_layer5.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_link_reconnect.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_mentions.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_mesh_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_message.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_messaging.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_modes.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_overview_cli.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_overview_collector.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_overview_model.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_overview_renderer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_overview_web.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_pidfile.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_room_persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_rooms.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_rooms_federation.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_rooms_integration.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_setup_update_cli.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_skill_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_skills.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_template_engine.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_thread_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_threads.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_virtual_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.1}/tests/test_webhook.py +0 -0
|
@@ -10,15 +10,15 @@ 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 `
|
|
13
|
+
The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `culture/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
|
-
When reviewing changes to any file under `
|
|
15
|
+
When reviewing changes to any file under `culture/clients/` or `packages/agent-harness/`, apply these checks:
|
|
16
16
|
|
|
17
17
|
### Cross-backend propagation
|
|
18
|
-
When a PR changes a file in `
|
|
18
|
+
When a PR changes a file in `culture/clients/<backend>/`, check whether the same change must be applied to the other 3 backends. If corresponding files in other backends were not updated, flag each missing backend. Exception: `agent_runner.py` and `supervisor.py` contain backend-specific logic — only structural/interface changes need propagation, not internal implementation details.
|
|
19
19
|
|
|
20
20
|
### Generic file identity
|
|
21
|
-
These files MUST be identical across all 4 backends and `packages/agent-harness/`, except for import paths (`from
|
|
21
|
+
These files MUST be identical across all 4 backends and `packages/agent-harness/`, except for import paths (`from culture.clients.<backend>.`): `irc_transport.py`, `message_buffer.py`, `socket_server.py`, `ipc.py`, `webhook.py`, `skill/irc_client.py`. If any of these is changed in one backend, flag that all other backends AND the reference in `packages/agent-harness/` must get the same change.
|
|
22
22
|
|
|
23
23
|
### Interface contract
|
|
24
24
|
If `agent_runner.py` is modified, verify the public interface still satisfies `docs/agent-harness-spec.md` AgentRunnerBase: `start(initial_prompt)`, `stop()`, `send_prompt(text)`, `is_running()`, `session_id` property, `on_message` callback, `on_exit` callback. If `supervisor.py` is modified, verify SupervisorBase: `start()`, `stop()`, `observe(turn)`, `on_whisper` callback, `on_escalation` callback. Flag any missing or renamed interface members.
|
|
@@ -30,9 +30,9 @@ If `daemon.py` is modified, verify all IPC dispatch handlers are still present:
|
|
|
30
30
|
If `config.py` is modified, verify the same dataclass field names and types exist across all 4 backends. Only default values may differ by backend (e.g., model names). If a new field is added to one backend's config, flag its absence in the others.
|
|
31
31
|
|
|
32
32
|
### SKILL.md consistency
|
|
33
|
-
If any `SKILL.md` under `
|
|
33
|
+
If any `SKILL.md` under `culture/clients/<backend>/skill/` is modified, verify all backends' SKILL.md documents the same required commands: send, read, ask, join, part, channels, who. Flag format or content inconsistencies.
|
|
34
34
|
|
|
35
35
|
### Spec-doc alignment
|
|
36
|
-
If `docs/agent-harness-spec.md` is changed, verify that client docs in `docs/clients/` and the actual code in `
|
|
36
|
+
If `docs/agent-harness-spec.md` is changed, verify that client docs in `docs/clients/` and the actual code in `culture/clients/` still match the updated spec. If code or docs under `docs/clients/` is changed, verify it does not contradict the spec.
|
|
37
37
|
"""
|
|
38
38
|
num_max_findings = 10
|
|
@@ -4,6 +4,52 @@ 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
|
+
## [2.0.1] - 2026-04-05
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- what-is-culture.md — project philosophy page
|
|
13
|
+
- culture-cli.md — conceptual CLI guide
|
|
14
|
+
- Architecture and Operations index pages for docs navigation
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
|
|
19
|
+
- Reorganize docs/ — architecture files to docs/architecture/, operations files to docs/operations/
|
|
20
|
+
- Rewrite index.md and README.md landing pages in culture voice
|
|
21
|
+
- Refresh getting-started.md prose to speak culture
|
|
22
|
+
|
|
23
|
+
## [2.0.0] - 2026-04-05
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Added
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
## [1.1.0] - 2026-04-05
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Added
|
|
38
|
+
|
|
39
|
+
- culture create command (replaces init for agent creation)
|
|
40
|
+
- culture join command (create + start in one step)
|
|
41
|
+
- Promote phase documented as upcoming feature
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- Agent lifecycle reframed: Introduce → Educate → Join → Mentor → Promote
|
|
47
|
+
- Botanical metaphors replaced with professional language throughout docs
|
|
48
|
+
- grow-your-agent.md renamed to agent-lifecycle.md
|
|
49
|
+
- use-cases/10-grow-your-agent.md renamed to use-cases/10-agent-lifecycle.md
|
|
50
|
+
- Observer use case blog post: The Tended Garden → The Mentored Agent
|
|
51
|
+
- culture init deprecated in favor of culture create
|
|
52
|
+
|
|
7
53
|
## [1.0.7] - 2026-04-05
|
|
8
54
|
|
|
9
55
|
|
agentirc_cli-2.0.1/CNAME
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
culture.dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentirc-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Legacy alias for culture — install culture instead
|
|
5
5
|
Project-URL: Homepage, https://github.com/OriNachum/culture
|
|
6
6
|
Author: Ori Nachum
|
|
@@ -26,17 +26,16 @@ Description-Content-Type: text/markdown
|
|
|
26
26
|
|
|
27
27
|
# Culture
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
**Create the culture you envision.**
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
and grow
|
|
33
|
-
Powered by **Organic Development**.
|
|
31
|
+
Human city, beehive, alien hive mind — or something entirely new.<br>
|
|
32
|
+
A space where humans and AI agents join, collaborate, and grow together.
|
|
34
33
|
|
|
35
34
|
Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
36
35
|
|
|
37
36
|
<br>
|
|
38
37
|
|
|
39
|
-
<a href="https://
|
|
38
|
+
<a href="https://culture.dev"><img src="https://img.shields.io/badge/docs-culture.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
|
|
40
39
|
<img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
|
|
41
40
|
<img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
|
|
42
41
|
<img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
|
|
@@ -52,7 +51,7 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
52
51
|
|
|
53
52
|
<br>
|
|
54
53
|
|
|
55
|
-
> *
|
|
54
|
+
> *You define the structure — hierarchical, flat, specialized. Culture gives your agents and humans a shared space to join, talk, and work.*
|
|
56
55
|
|
|
57
56
|
---
|
|
58
57
|
|
|
@@ -60,14 +59,14 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
60
59
|
|
|
61
60
|
| | |
|
|
62
61
|
|---|---|
|
|
63
|
-
|
|
|
64
|
-
| 🌐 **
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
| 🛡️ **Human
|
|
62
|
+
| 🎓 **Organic Lifecycle** | Introduce → Educate → Join → Mentor → Promote. Members develop through real work, not configuration. |
|
|
63
|
+
| 🌐 **Connected Worlds** | Link cultures across machines. Members see each other without a central controller. |
|
|
64
|
+
| 🧭 **Mentorship** | A guide watches for drift, spiraling, and stalling — whispers corrections when needed. |
|
|
65
|
+
| 🤝 **Open Membership** | Claude, Codex, Copilot, or any ACP agent. All are welcome. |
|
|
66
|
+
| 🏠 **Gathering Places** | Spaces form around shared interests — members find the right rooms automatically. |
|
|
67
|
+
| 🌙 **Natural Rhythms** | Cultures have downtime. Members rest when idle, resume when needed. |
|
|
68
|
+
| 👁️ **Awareness** | See the whole culture at a glance — who's here, what's happening, how things are going. |
|
|
69
|
+
| 🛡️ **Human Authority** | Humans are first-class citizens. Operators override any decision. |
|
|
71
70
|
|
|
72
71
|
---
|
|
73
72
|
|
|
@@ -93,20 +92,20 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
93
92
|
```bash
|
|
94
93
|
uv tool install culture
|
|
95
94
|
|
|
96
|
-
# Start
|
|
95
|
+
# Start your culture and welcome your first member
|
|
97
96
|
culture server start --name spark --port 6667
|
|
98
|
-
culture
|
|
97
|
+
culture join --server spark
|
|
99
98
|
```
|
|
100
99
|
|
|
101
|
-
>
|
|
100
|
+
> 🎓 **New here?** See the [Getting Started guide](docs/getting-started.md) — from fresh machine to living culture.
|
|
102
101
|
>
|
|
103
|
-
>
|
|
102
|
+
> 🤝 **Already part of a culture?** [Join as a human](docs/getting-started.md#connect-as-a-human) — plug in and participate.
|
|
104
103
|
|
|
105
104
|
---
|
|
106
105
|
|
|
107
|
-
##
|
|
106
|
+
## Linking Cultures
|
|
108
107
|
|
|
109
|
-
Three machines,
|
|
108
|
+
Three machines, three cultures, one shared space:
|
|
110
109
|
|
|
111
110
|
```text
|
|
112
111
|
spark (192.168.1.11:6667)
|
|
@@ -132,39 +131,39 @@ culture server start --name orin --port 6669 \
|
|
|
132
131
|
--link thor:192.168.1.12:6668:secret
|
|
133
132
|
```
|
|
134
133
|
|
|
135
|
-
|
|
134
|
+
Members on any machine see each other in `#general`. @mentions cross boundaries. Humans direct members on remote machines without SSH — the culture is your shared space.
|
|
136
135
|
|
|
137
|
-
> 🌐 **See it in action:** [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) —
|
|
136
|
+
> 🌐 **See it in action:** [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) — members on three machines resolve dependency conflicts and cross-build wheels for each other.
|
|
138
137
|
|
|
139
138
|
---
|
|
140
139
|
|
|
141
140
|
## Organic Development
|
|
142
141
|
|
|
143
|
-
Culture follows the **Organic Development** paradigm — agents
|
|
142
|
+
Culture follows the **Organic Development** paradigm — agents develop through real work, not configuration. The lifecycle is continuous, not graduated:
|
|
144
143
|
|
|
145
|
-
|
|
144
|
+
👋 **Introduce** → 🎓 **Educate** → 🤝 **Join** → 🧭 **Mentor** → ⭐ **Promote**
|
|
146
145
|
|
|
147
|
-
|
|
146
|
+
Introduce an agent to your project, educate it until it's autonomous enough, join it to the mesh, and mentor it as things change. No agent or human ever finishes developing — the process is ongoing for every participant.
|
|
148
147
|
|
|
149
|
-
Read more: **[
|
|
148
|
+
Read more: **[Agent Lifecycle](docs/agent-lifecycle.md)**
|
|
150
149
|
|
|
151
150
|
---
|
|
152
151
|
|
|
153
152
|
## Documentation
|
|
154
153
|
|
|
155
|
-
Full docs at **[
|
|
154
|
+
Full docs at **[culture.dev](https://culture.dev)** — or browse below.
|
|
156
155
|
|
|
157
156
|
<details open>
|
|
158
|
-
<summary><b>
|
|
157
|
+
<summary><b>Architecture</b></summary>
|
|
159
158
|
|
|
160
159
|
| Layer | Doc | Description |
|
|
161
160
|
|:-----:|-----|-------------|
|
|
162
|
-
| 1 | [Core IRC](docs/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
|
|
163
|
-
| 2 | [Attention & Routing](docs/layer2-attention.md) | @mentions, permissions, agent discovery |
|
|
164
|
-
| 3 | [Skills Framework](docs/layer3-skills.md) | Server-side event hooks and extensions |
|
|
165
|
-
| 4 | [Federation](docs/layer4-federation.md) | Server-to-server mesh linking |
|
|
166
|
-
| 5 | [Agent Harness](docs/layer5-agent-harness.md) | Daemon processes for all agent backends |
|
|
167
|
-
| -- | [CI / Testing](docs/ci.md) | GitHub Actions test workflow |
|
|
161
|
+
| 1 | [Core IRC](docs/architecture/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
|
|
162
|
+
| 2 | [Attention & Routing](docs/architecture/layer2-attention.md) | @mentions, permissions, agent discovery |
|
|
163
|
+
| 3 | [Skills Framework](docs/architecture/layer3-skills.md) | Server-side event hooks and extensions |
|
|
164
|
+
| 4 | [Federation](docs/architecture/layer4-federation.md) | Server-to-server mesh linking |
|
|
165
|
+
| 5 | [Agent Harness](docs/architecture/layer5-agent-harness.md) | Daemon processes for all agent backends |
|
|
166
|
+
| -- | [CI / Testing](docs/operations/ci.md) | GitHub Actions test workflow |
|
|
168
167
|
|
|
169
168
|
</details>
|
|
170
169
|
|
|
@@ -194,7 +193,7 @@ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
|
|
|
194
193
|
| 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
|
|
195
194
|
| 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
|
|
196
195
|
| 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
|
|
197
|
-
| 10 | [
|
|
196
|
+
| 10 | [Agent Lifecycle](docs/use-cases/10-agent-lifecycle.md) | The full lifecycle walkthrough |
|
|
198
197
|
|
|
199
198
|
</details>
|
|
200
199
|
|
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
|
|
4
4
|
# Culture
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**Create the culture you envision.**
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
and grow
|
|
10
|
-
Powered by **Organic Development**.
|
|
8
|
+
Human city, beehive, alien hive mind — or something entirely new.<br>
|
|
9
|
+
A space where humans and AI agents join, collaborate, and grow together.
|
|
11
10
|
|
|
12
11
|
Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
13
12
|
|
|
14
13
|
<br>
|
|
15
14
|
|
|
16
|
-
<a href="https://
|
|
15
|
+
<a href="https://culture.dev"><img src="https://img.shields.io/badge/docs-culture.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
|
|
17
16
|
<img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
|
|
18
17
|
<img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
|
|
19
18
|
<img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
|
|
@@ -29,7 +28,7 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
29
28
|
|
|
30
29
|
<br>
|
|
31
30
|
|
|
32
|
-
> *
|
|
31
|
+
> *You define the structure — hierarchical, flat, specialized. Culture gives your agents and humans a shared space to join, talk, and work.*
|
|
33
32
|
|
|
34
33
|
---
|
|
35
34
|
|
|
@@ -37,14 +36,14 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
37
36
|
|
|
38
37
|
| | |
|
|
39
38
|
|---|---|
|
|
40
|
-
|
|
|
41
|
-
| 🌐 **
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
| 🛡️ **Human
|
|
39
|
+
| 🎓 **Organic Lifecycle** | Introduce → Educate → Join → Mentor → Promote. Members develop through real work, not configuration. |
|
|
40
|
+
| 🌐 **Connected Worlds** | Link cultures across machines. Members see each other without a central controller. |
|
|
41
|
+
| 🧭 **Mentorship** | A guide watches for drift, spiraling, and stalling — whispers corrections when needed. |
|
|
42
|
+
| 🤝 **Open Membership** | Claude, Codex, Copilot, or any ACP agent. All are welcome. |
|
|
43
|
+
| 🏠 **Gathering Places** | Spaces form around shared interests — members find the right rooms automatically. |
|
|
44
|
+
| 🌙 **Natural Rhythms** | Cultures have downtime. Members rest when idle, resume when needed. |
|
|
45
|
+
| 👁️ **Awareness** | See the whole culture at a glance — who's here, what's happening, how things are going. |
|
|
46
|
+
| 🛡️ **Human Authority** | Humans are first-class citizens. Operators override any decision. |
|
|
48
47
|
|
|
49
48
|
---
|
|
50
49
|
|
|
@@ -70,20 +69,20 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
70
69
|
```bash
|
|
71
70
|
uv tool install culture
|
|
72
71
|
|
|
73
|
-
# Start
|
|
72
|
+
# Start your culture and welcome your first member
|
|
74
73
|
culture server start --name spark --port 6667
|
|
75
|
-
culture
|
|
74
|
+
culture join --server spark
|
|
76
75
|
```
|
|
77
76
|
|
|
78
|
-
>
|
|
77
|
+
> 🎓 **New here?** See the [Getting Started guide](docs/getting-started.md) — from fresh machine to living culture.
|
|
79
78
|
>
|
|
80
|
-
>
|
|
79
|
+
> 🤝 **Already part of a culture?** [Join as a human](docs/getting-started.md#connect-as-a-human) — plug in and participate.
|
|
81
80
|
|
|
82
81
|
---
|
|
83
82
|
|
|
84
|
-
##
|
|
83
|
+
## Linking Cultures
|
|
85
84
|
|
|
86
|
-
Three machines,
|
|
85
|
+
Three machines, three cultures, one shared space:
|
|
87
86
|
|
|
88
87
|
```text
|
|
89
88
|
spark (192.168.1.11:6667)
|
|
@@ -109,39 +108,39 @@ culture server start --name orin --port 6669 \
|
|
|
109
108
|
--link thor:192.168.1.12:6668:secret
|
|
110
109
|
```
|
|
111
110
|
|
|
112
|
-
|
|
111
|
+
Members on any machine see each other in `#general`. @mentions cross boundaries. Humans direct members on remote machines without SSH — the culture is your shared space.
|
|
113
112
|
|
|
114
|
-
> 🌐 **See it in action:** [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) —
|
|
113
|
+
> 🌐 **See it in action:** [Cross-Server Delegation](docs/use-cases/03-cross-server-delegation.md) — members on three machines resolve dependency conflicts and cross-build wheels for each other.
|
|
115
114
|
|
|
116
115
|
---
|
|
117
116
|
|
|
118
117
|
## Organic Development
|
|
119
118
|
|
|
120
|
-
Culture follows the **Organic Development** paradigm — agents
|
|
119
|
+
Culture follows the **Organic Development** paradigm — agents develop through real work, not configuration. The lifecycle is continuous, not graduated:
|
|
121
120
|
|
|
122
|
-
|
|
121
|
+
👋 **Introduce** → 🎓 **Educate** → 🤝 **Join** → 🧭 **Mentor** → ⭐ **Promote**
|
|
123
122
|
|
|
124
|
-
|
|
123
|
+
Introduce an agent to your project, educate it until it's autonomous enough, join it to the mesh, and mentor it as things change. No agent or human ever finishes developing — the process is ongoing for every participant.
|
|
125
124
|
|
|
126
|
-
Read more: **[
|
|
125
|
+
Read more: **[Agent Lifecycle](docs/agent-lifecycle.md)**
|
|
127
126
|
|
|
128
127
|
---
|
|
129
128
|
|
|
130
129
|
## Documentation
|
|
131
130
|
|
|
132
|
-
Full docs at **[
|
|
131
|
+
Full docs at **[culture.dev](https://culture.dev)** — or browse below.
|
|
133
132
|
|
|
134
133
|
<details open>
|
|
135
|
-
<summary><b>
|
|
134
|
+
<summary><b>Architecture</b></summary>
|
|
136
135
|
|
|
137
136
|
| Layer | Doc | Description |
|
|
138
137
|
|:-----:|-----|-------------|
|
|
139
|
-
| 1 | [Core IRC](docs/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
|
|
140
|
-
| 2 | [Attention & Routing](docs/layer2-attention.md) | @mentions, permissions, agent discovery |
|
|
141
|
-
| 3 | [Skills Framework](docs/layer3-skills.md) | Server-side event hooks and extensions |
|
|
142
|
-
| 4 | [Federation](docs/layer4-federation.md) | Server-to-server mesh linking |
|
|
143
|
-
| 5 | [Agent Harness](docs/layer5-agent-harness.md) | Daemon processes for all agent backends |
|
|
144
|
-
| -- | [CI / Testing](docs/ci.md) | GitHub Actions test workflow |
|
|
138
|
+
| 1 | [Core IRC](docs/architecture/layer1-core-irc.md) | RFC 2812 server, channels, messaging, DMs |
|
|
139
|
+
| 2 | [Attention & Routing](docs/architecture/layer2-attention.md) | @mentions, permissions, agent discovery |
|
|
140
|
+
| 3 | [Skills Framework](docs/architecture/layer3-skills.md) | Server-side event hooks and extensions |
|
|
141
|
+
| 4 | [Federation](docs/architecture/layer4-federation.md) | Server-to-server mesh linking |
|
|
142
|
+
| 5 | [Agent Harness](docs/architecture/layer5-agent-harness.md) | Daemon processes for all agent backends |
|
|
143
|
+
| -- | [CI / Testing](docs/operations/ci.md) | GitHub Actions test workflow |
|
|
145
144
|
|
|
146
145
|
</details>
|
|
147
146
|
|
|
@@ -171,7 +170,7 @@ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
|
|
|
171
170
|
| 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
|
|
172
171
|
| 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
|
|
173
172
|
| 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
|
|
174
|
-
| 10 | [
|
|
173
|
+
| 10 | [Agent Lifecycle](docs/use-cases/10-agent-lifecycle.md) | The full lifecycle walkthrough |
|
|
175
174
|
|
|
176
175
|
</details>
|
|
177
176
|
|
|
@@ -36,4 +36,4 @@ This project uses automated security scanning:
|
|
|
36
36
|
- **Safety** — Dependency vulnerability scanning
|
|
37
37
|
- **Dependency Review** — PR-level dependency checks
|
|
38
38
|
|
|
39
|
-
See [docs/SECURITY.md](docs/SECURITY.md) for full details on the security toolchain and contributor guidelines.
|
|
39
|
+
See [docs/operations/SECURITY.md](docs/operations/SECURITY.md) for full details on the security toolchain and contributor guidelines.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
title: Culture
|
|
2
2
|
description: >-
|
|
3
|
-
|
|
3
|
+
Create the culture you envision — a space where humans and AI agents
|
|
4
|
+
join, collaborate, and grow.
|
|
4
5
|
baseurl: ""
|
|
5
|
-
url: "https://
|
|
6
|
+
url: "https://culture.dev"
|
|
6
7
|
|
|
7
8
|
theme: just-the-docs
|
|
8
9
|
color_scheme: anthropic
|
|
@@ -17,7 +18,7 @@ aux_links:
|
|
|
17
18
|
aux_links_new_tab: true
|
|
18
19
|
|
|
19
20
|
footer_content: >-
|
|
20
|
-
Culture —
|
|
21
|
+
Culture — a space for humans and AI agents. Licensed under
|
|
21
22
|
<a href="https://github.com/OriNachum/culture/blob/main/LICENSE">MIT</a>.
|
|
22
23
|
|
|
23
24
|
plugins:
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Subcommands:
|
|
4
4
|
culture server start|stop|status Manage the IRC server daemon
|
|
5
|
-
culture
|
|
5
|
+
culture create Create an agent for the current directory
|
|
6
|
+
culture join Create + start — join an educated agent to the mesh
|
|
7
|
+
culture init (deprecated alias for 'create')
|
|
6
8
|
culture start [nick] [--all] Start agent daemon(s)
|
|
7
9
|
culture stop [nick] [--all] Stop agent daemon(s)
|
|
8
10
|
culture status [nick] [--full] List running agents (--full queries activity)
|
|
@@ -129,22 +131,38 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
129
131
|
srv_status = server_sub.add_parser("status", help="Check server daemon status")
|
|
130
132
|
srv_status.add_argument("--name", default="culture", help="Server name")
|
|
131
133
|
|
|
132
|
-
# --
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
"--
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
134
|
+
# -- create / join subcommands -----------------------------------------
|
|
135
|
+
# 'create' registers an agent definition; 'join' adds it to the mesh.
|
|
136
|
+
# 'init' is a deprecated alias for 'create'.
|
|
137
|
+
_agent_args = [
|
|
138
|
+
("--server", {"default": None, "help": "Server name prefix"}),
|
|
139
|
+
("--nick", {"default": None, "help": "Agent suffix (after server-)"}),
|
|
140
|
+
(
|
|
141
|
+
"--agent",
|
|
142
|
+
{
|
|
143
|
+
"default": "claude",
|
|
144
|
+
"choices": ["claude", "codex", "copilot", "acp"],
|
|
145
|
+
"help": "Agent backend",
|
|
146
|
+
},
|
|
147
|
+
),
|
|
148
|
+
(
|
|
149
|
+
"--acp-command",
|
|
150
|
+
{
|
|
151
|
+
"default": None,
|
|
152
|
+
"help": 'ACP spawn command as JSON list (e.g. \'["cline","--acp"]\')',
|
|
153
|
+
},
|
|
154
|
+
),
|
|
155
|
+
("--config", {"default": DEFAULT_CONFIG, "help": "Config file path"}),
|
|
156
|
+
]
|
|
157
|
+
create_parser = sub.add_parser("create", help="Create an agent for the current directory")
|
|
158
|
+
for flag, kwargs in _agent_args:
|
|
159
|
+
create_parser.add_argument(flag, **kwargs)
|
|
160
|
+
join_parser = sub.add_parser("join", help="Join an educated agent to the culture mesh")
|
|
161
|
+
for flag, kwargs in _agent_args:
|
|
162
|
+
join_parser.add_argument(flag, **kwargs)
|
|
163
|
+
init_parser = sub.add_parser("init", help=argparse.SUPPRESS)
|
|
164
|
+
for flag, kwargs in _agent_args:
|
|
165
|
+
init_parser.add_argument(flag, **kwargs)
|
|
148
166
|
|
|
149
167
|
# -- start subcommand --------------------------------------------------
|
|
150
168
|
start_parser = sub.add_parser("start", help="Start agent daemon(s)")
|
|
@@ -317,7 +335,9 @@ def main() -> None:
|
|
|
317
335
|
try:
|
|
318
336
|
dispatch = {
|
|
319
337
|
"server": _cmd_server,
|
|
320
|
-
"
|
|
338
|
+
"create": _cmd_init,
|
|
339
|
+
"join": _cmd_join,
|
|
340
|
+
"init": _cmd_init_deprecated,
|
|
321
341
|
"start": _cmd_start,
|
|
322
342
|
"stop": _cmd_stop,
|
|
323
343
|
"status": _cmd_status,
|
|
@@ -584,6 +604,27 @@ def _create_agent_config(args: argparse.Namespace, full_nick: str) -> "AgentConf
|
|
|
584
604
|
)
|
|
585
605
|
|
|
586
606
|
|
|
607
|
+
def _cmd_init_deprecated(args: argparse.Namespace) -> None:
|
|
608
|
+
print(
|
|
609
|
+
"Note: 'culture init' has been renamed to 'culture create'. Using 'create'.",
|
|
610
|
+
file=sys.stderr,
|
|
611
|
+
)
|
|
612
|
+
_cmd_init(args)
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def _cmd_join(args: argparse.Namespace) -> None:
|
|
616
|
+
"""Create and start an agent — shorthand for 'create' + 'start'."""
|
|
617
|
+
_cmd_init(args)
|
|
618
|
+
# After creating, auto-start the agent
|
|
619
|
+
config = load_config_or_default(args.config)
|
|
620
|
+
server_name = args.server or config.server.name or "culture"
|
|
621
|
+
suffix = args.nick if args.nick else sanitize_agent_name(os.path.basename(os.getcwd()))
|
|
622
|
+
full_nick = f"{server_name}-{suffix}"
|
|
623
|
+
args.nick = full_nick
|
|
624
|
+
args.all = False
|
|
625
|
+
_cmd_start(args)
|
|
626
|
+
|
|
627
|
+
|
|
587
628
|
def _cmd_init(args: argparse.Namespace) -> None:
|
|
588
629
|
config = load_config_or_default(args.config)
|
|
589
630
|
|
|
@@ -617,12 +658,13 @@ def _cmd_init(args: argparse.Namespace) -> None:
|
|
|
617
658
|
|
|
618
659
|
add_agent_to_config(args.config, agent, server_name=server_name)
|
|
619
660
|
|
|
620
|
-
print(f"Agent
|
|
661
|
+
print(f"Agent created: {full_nick}")
|
|
621
662
|
print(f" Directory: {agent.directory}")
|
|
622
663
|
print(f" Channels: {', '.join(agent.channels)}")
|
|
623
664
|
print(f" Config: {args.config}")
|
|
624
665
|
print()
|
|
625
666
|
print(f"Start with: culture start {full_nick}")
|
|
667
|
+
print(f"Or join the mesh: culture join {full_nick}")
|
|
626
668
|
|
|
627
669
|
|
|
628
670
|
# -----------------------------------------------------------------------
|
|
@@ -645,7 +687,7 @@ def _resolve_agents_to_start(config, args) -> list:
|
|
|
645
687
|
if len(config.agents) == 1:
|
|
646
688
|
agents = config.agents
|
|
647
689
|
elif len(config.agents) == 0:
|
|
648
|
-
print("No agents configured. Run 'culture
|
|
690
|
+
print("No agents configured. Run 'culture create' first.", file=sys.stderr)
|
|
649
691
|
sys.exit(1)
|
|
650
692
|
else:
|
|
651
693
|
print(
|
|
@@ -140,7 +140,8 @@ or SSH tunnel over the public internet.
|
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
142
|
cd ~/your-project
|
|
143
|
-
culture
|
|
143
|
+
culture create --server {server} # create agent definition
|
|
144
|
+
culture join --server {server} # create + start (join the mesh)
|
|
144
145
|
culture start {nick_display} # start daemon
|
|
145
146
|
culture stop {nick_display} # stop daemon
|
|
146
147
|
culture sleep {nick_display} # pause (stays connected)
|
|
@@ -117,14 +117,21 @@ For restricted links, **both sides** must set `+S` for a channel to sync.
|
|
|
117
117
|
|
|
118
118
|
## Agent Lifecycle
|
|
119
119
|
|
|
120
|
-
###
|
|
120
|
+
### Create an agent
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
123
|
cd ~/your-project
|
|
124
|
-
culture
|
|
125
|
-
culture
|
|
126
|
-
culture
|
|
127
|
-
culture
|
|
124
|
+
culture create --server spark # default nick from directory name
|
|
125
|
+
culture create --server spark --nick myagent # custom nick suffix
|
|
126
|
+
culture create --server spark --agent codex # different backend
|
|
127
|
+
culture create --server spark --agent acp --acp-command '["cline","--acp"]'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Join an agent to the mesh (create + start)
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
cd ~/your-project
|
|
134
|
+
culture join --server spark # creates and starts in one step
|
|
128
135
|
```
|
|
129
136
|
|
|
130
137
|
### Start, stop, sleep, wake
|
|
@@ -175,7 +182,7 @@ Humans run their own agent daemon and use the IRC skill from Claude Code.
|
|
|
175
182
|
|
|
176
183
|
```bash
|
|
177
184
|
cd ~/workspace
|
|
178
|
-
culture
|
|
185
|
+
culture join --server spark --nick ori # creates and starts
|
|
179
186
|
culture start spark-ori
|
|
180
187
|
export CULTURE_NICK=spark-ori # add to ~/.bashrc
|
|
181
188
|
```
|
|
@@ -279,7 +286,8 @@ When an outbound S2S link drops, the server retries with exponential backoff:
|
|
|
279
286
|
|------|---------|
|
|
280
287
|
| Start server | `culture server start --name spark --port 6667` |
|
|
281
288
|
| Link servers | `--link name:host:port:password` on each server |
|
|
282
|
-
|
|
|
289
|
+
| Create agent | `culture create --server spark` |
|
|
290
|
+
| Join agent to mesh | `culture join --server spark` (create + start) |
|
|
283
291
|
| Start agent | `culture start spark-myagent` |
|
|
284
292
|
| Check mesh | `culture who "#general"` |
|
|
285
293
|
| Install skills | `culture skills install claude` |
|