clawrium 0.1.0__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 (125) hide show
  1. clawrium-0.1.0/.github/workflows/test.yml +34 -0
  2. clawrium-0.1.0/.gitignore +211 -0
  3. clawrium-0.1.0/.mcp.json +17 -0
  4. clawrium-0.1.0/.planning/PROJECT.md +93 -0
  5. clawrium-0.1.0/.planning/REQUIREMENTS.md +118 -0
  6. clawrium-0.1.0/.planning/ROADMAP.md +114 -0
  7. clawrium-0.1.0/.planning/STATE.md +119 -0
  8. clawrium-0.1.0/.planning/config.json +33 -0
  9. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-01-PLAN.md +578 -0
  10. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-01-SUMMARY.md +217 -0
  11. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-02-PLAN.md +661 -0
  12. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-02-SUMMARY.md +132 -0
  13. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-RESEARCH.md +439 -0
  14. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-VALIDATION.md +81 -0
  15. clawrium-0.1.0/.planning/phases/01-foundation-setup/01-VERIFICATION.md +113 -0
  16. clawrium-0.1.0/.planning/phases/02-host-management/02-01-PLAN.md +410 -0
  17. clawrium-0.1.0/.planning/phases/02-host-management/02-01-SUMMARY.md +212 -0
  18. clawrium-0.1.0/.planning/phases/02-host-management/02-02-PLAN.md +315 -0
  19. clawrium-0.1.0/.planning/phases/02-host-management/02-02-SUMMARY.md +209 -0
  20. clawrium-0.1.0/.planning/phases/02-host-management/02-03-PLAN.md +356 -0
  21. clawrium-0.1.0/.planning/phases/02-host-management/02-03-SUMMARY.md +159 -0
  22. clawrium-0.1.0/.planning/phases/02-host-management/02-04-PLAN.md +614 -0
  23. clawrium-0.1.0/.planning/phases/02-host-management/02-04-SUMMARY.md +275 -0
  24. clawrium-0.1.0/.planning/phases/02-host-management/02-CONTEXT.md +111 -0
  25. clawrium-0.1.0/.planning/phases/02-host-management/02-DISCUSSION-LOG.md +213 -0
  26. clawrium-0.1.0/.planning/phases/02-host-management/02-RESEARCH.md +660 -0
  27. clawrium-0.1.0/.planning/phases/02-host-management/02-VALIDATION.md +85 -0
  28. clawrium-0.1.0/.planning/phases/02-host-management/02-VERIFICATION.md +130 -0
  29. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-01-PLAN.md +237 -0
  30. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-01-SUMMARY.md +178 -0
  31. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-02-PLAN.md +201 -0
  32. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-02-SUMMARY.md +112 -0
  33. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-03-PLAN.md +268 -0
  34. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-03-SUMMARY.md +173 -0
  35. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-04-PLAN.md +370 -0
  36. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-04-SUMMARY.md +119 -0
  37. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-CONTEXT.md +135 -0
  38. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-DISCUSSION-LOG.md +172 -0
  39. clawrium-0.1.0/.planning/phases/03-registry-compatibility/03-VERIFICATION.md +273 -0
  40. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-01-PLAN.md +415 -0
  41. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-01-SUMMARY.md +193 -0
  42. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-02-PLAN.md +377 -0
  43. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-02-SUMMARY.md +181 -0
  44. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-03-PLAN.md +567 -0
  45. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-03-SUMMARY.md +185 -0
  46. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-04-PLAN.md +508 -0
  47. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-04-SUMMARY.md +136 -0
  48. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-CONTEXT.md +122 -0
  49. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-DISCUSSION-LOG.md +144 -0
  50. clawrium-0.1.0/.planning/phases/04-installation-fleet-status/04-VERIFICATION.md +139 -0
  51. clawrium-0.1.0/.planning/phases/05-secrets-management/05-01-PLAN.md +371 -0
  52. clawrium-0.1.0/.planning/phases/05-secrets-management/05-01-SUMMARY.md +169 -0
  53. clawrium-0.1.0/.planning/phases/05-secrets-management/05-02-PLAN.md +477 -0
  54. clawrium-0.1.0/.planning/phases/05-secrets-management/05-02-SUMMARY.md +163 -0
  55. clawrium-0.1.0/.planning/phases/05-secrets-management/05-CONTEXT.md +121 -0
  56. clawrium-0.1.0/.planning/phases/05-secrets-management/05-DISCUSSION-LOG.md +194 -0
  57. clawrium-0.1.0/.planning/phases/05-secrets-management/05-VERIFICATION.md +233 -0
  58. clawrium-0.1.0/.planning/quick/260321-fna-implement-per-host-ssh-key-storage-with-/260321-fna-PLAN.md +261 -0
  59. clawrium-0.1.0/.planning/quick/260321-fna-implement-per-host-ssh-key-storage-with-/260321-fna-SUMMARY.md +108 -0
  60. clawrium-0.1.0/.planning/quick/260321-iqu-fix-issue-1-key-lookup-mismatch-add-key-/260321-iqu-PLAN.md +312 -0
  61. clawrium-0.1.0/.planning/quick/260321-iqu-fix-issue-1-key-lookup-mismatch-add-key-/260321-iqu-SUMMARY.md +161 -0
  62. clawrium-0.1.0/.planning/quick/260321-jld-fix-hardware-detection-ansible-runner-ne/260321-jld-PLAN.md +212 -0
  63. clawrium-0.1.0/.planning/quick/260321-jld-fix-hardware-detection-ansible-runner-ne/260321-jld-SUMMARY.md +105 -0
  64. clawrium-0.1.0/.planning/quick/260321-jux-atx-review-fixes-ssh-key-validation-test/260321-jux-SUMMARY.md +99 -0
  65. clawrium-0.1.0/.planning/research/SUMMARY.md +88 -0
  66. clawrium-0.1.0/AGENTS.md +67 -0
  67. clawrium-0.1.0/CLAUDE.md +57 -0
  68. clawrium-0.1.0/LICENSE +201 -0
  69. clawrium-0.1.0/Makefile +47 -0
  70. clawrium-0.1.0/PKG-INFO +94 -0
  71. clawrium-0.1.0/README.md +80 -0
  72. clawrium-0.1.0/docs/assets/clawrium-logo.png +0 -0
  73. clawrium-0.1.0/docs/host-preparation.md +148 -0
  74. clawrium-0.1.0/docs/index.md +43 -0
  75. clawrium-0.1.0/pyproject.toml +39 -0
  76. clawrium-0.1.0/src/clawrium/__init__.py +3 -0
  77. clawrium-0.1.0/src/clawrium/cli/__init__.py +1 -0
  78. clawrium-0.1.0/src/clawrium/cli/host.py +608 -0
  79. clawrium-0.1.0/src/clawrium/cli/init.py +58 -0
  80. clawrium-0.1.0/src/clawrium/cli/install.py +175 -0
  81. clawrium-0.1.0/src/clawrium/cli/main.py +67 -0
  82. clawrium-0.1.0/src/clawrium/cli/registry.py +108 -0
  83. clawrium-0.1.0/src/clawrium/cli/secret.py +165 -0
  84. clawrium-0.1.0/src/clawrium/cli/status.py +128 -0
  85. clawrium-0.1.0/src/clawrium/core/__init__.py +1 -0
  86. clawrium-0.1.0/src/clawrium/core/config.py +47 -0
  87. clawrium-0.1.0/src/clawrium/core/deps.py +138 -0
  88. clawrium-0.1.0/src/clawrium/core/hardware.py +250 -0
  89. clawrium-0.1.0/src/clawrium/core/health.py +215 -0
  90. clawrium-0.1.0/src/clawrium/core/hosts.py +275 -0
  91. clawrium-0.1.0/src/clawrium/core/install.py +303 -0
  92. clawrium-0.1.0/src/clawrium/core/keys.py +229 -0
  93. clawrium-0.1.0/src/clawrium/core/names.py +125 -0
  94. clawrium-0.1.0/src/clawrium/core/registry.py +373 -0
  95. clawrium-0.1.0/src/clawrium/core/secrets.py +304 -0
  96. clawrium-0.1.0/src/clawrium/core/ssh_connection.py +246 -0
  97. clawrium-0.1.0/src/clawrium/platform/__init__.py +1 -0
  98. clawrium-0.1.0/src/clawrium/platform/playbooks/base.yaml +45 -0
  99. clawrium-0.1.0/src/clawrium/platform/registry/__init__.py +1 -0
  100. clawrium-0.1.0/src/clawrium/platform/registry/openclaw/manifest.yaml +32 -0
  101. clawrium-0.1.0/src/clawrium/platform/registry/openclaw/playbooks/install.yaml +31 -0
  102. clawrium-0.1.0/src/clawrium/platform/registry/zeroclaw/__init__.py +1 -0
  103. clawrium-0.1.0/src/clawrium/platform/registry/zeroclaw/manifest.yaml +58 -0
  104. clawrium-0.1.0/src/clawrium/platform/registry/zeroclaw/playbooks/install.yaml +65 -0
  105. clawrium-0.1.0/tests/__init__.py +1 -0
  106. clawrium-0.1.0/tests/conftest.py +135 -0
  107. clawrium-0.1.0/tests/test_cli_host.py +533 -0
  108. clawrium-0.1.0/tests/test_cli_init.py +117 -0
  109. clawrium-0.1.0/tests/test_cli_install.py +270 -0
  110. clawrium-0.1.0/tests/test_cli_registry.py +38 -0
  111. clawrium-0.1.0/tests/test_cli_secret.py +279 -0
  112. clawrium-0.1.0/tests/test_cli_status.py +216 -0
  113. clawrium-0.1.0/tests/test_config.py +82 -0
  114. clawrium-0.1.0/tests/test_deps.py +129 -0
  115. clawrium-0.1.0/tests/test_hardware.py +582 -0
  116. clawrium-0.1.0/tests/test_health.py +192 -0
  117. clawrium-0.1.0/tests/test_hosts.py +351 -0
  118. clawrium-0.1.0/tests/test_install.py +631 -0
  119. clawrium-0.1.0/tests/test_keys.py +283 -0
  120. clawrium-0.1.0/tests/test_names.py +64 -0
  121. clawrium-0.1.0/tests/test_playbooks.py +69 -0
  122. clawrium-0.1.0/tests/test_registry.py +430 -0
  123. clawrium-0.1.0/tests/test_secrets.py +376 -0
  124. clawrium-0.1.0/tests/test_ssh_connection.py +324 -0
  125. clawrium-0.1.0/uv.lock +815 -0
@@ -0,0 +1,34 @@
1
+ name: Test
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Install uv
17
+ uses: astral-sh/setup-uv@v4
18
+ with:
19
+ version: "latest"
20
+
21
+ - name: Set up Python
22
+ run: uv python install 3.11
23
+
24
+ - name: Install dependencies
25
+ run: uv sync
26
+
27
+ - name: Run tests with coverage
28
+ run: make test-cov
29
+
30
+ - name: Upload coverage report
31
+ uses: actions/upload-artifact@v4
32
+ with:
33
+ name: coverage-report
34
+ path: .coverage
@@ -0,0 +1,211 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[codz]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py.cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # UV
98
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ #uv.lock
102
+
103
+ # poetry
104
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
105
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
106
+ # commonly ignored for libraries.
107
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
108
+ #poetry.lock
109
+ #poetry.toml
110
+
111
+ # pdm
112
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
113
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
114
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
115
+ #pdm.lock
116
+ #pdm.toml
117
+ .pdm-python
118
+ .pdm-build/
119
+
120
+ # pixi
121
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
122
+ #pixi.lock
123
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
124
+ # in the .venv directory. It is recommended not to include this directory in version control.
125
+ .pixi
126
+
127
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
128
+ __pypackages__/
129
+
130
+ # Celery stuff
131
+ celerybeat-schedule
132
+ celerybeat.pid
133
+
134
+ # SageMath parsed files
135
+ *.sage.py
136
+
137
+ # Environments
138
+ .env
139
+ .envrc
140
+ .venv
141
+ env/
142
+ venv/
143
+ ENV/
144
+ env.bak/
145
+ venv.bak/
146
+
147
+ # Spyder project settings
148
+ .spyderproject
149
+ .spyproject
150
+
151
+ # Rope project settings
152
+ .ropeproject
153
+
154
+ # mkdocs documentation
155
+ /site
156
+
157
+ # mypy
158
+ .mypy_cache/
159
+ .dmypy.json
160
+ dmypy.json
161
+
162
+ # Pyre type checker
163
+ .pyre/
164
+
165
+ # pytype static type analyzer
166
+ .pytype/
167
+
168
+ # Cython debug symbols
169
+ cython_debug/
170
+
171
+ # PyCharm
172
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
173
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
174
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
175
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
176
+ #.idea/
177
+
178
+ # Abstra
179
+ # Abstra is an AI-powered process automation framework.
180
+ # Ignore directories containing user credentials, local state, and settings.
181
+ # Learn more at https://abstra.io/docs
182
+ .abstra/
183
+
184
+ # Visual Studio Code
185
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
186
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
187
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
188
+ # you could uncomment the following to ignore the entire vscode folder
189
+ # .vscode/
190
+
191
+ # Ruff stuff:
192
+ .ruff_cache/
193
+
194
+ # PyPI configuration file
195
+ .pypirc
196
+
197
+ # Cursor
198
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
199
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
200
+ # refer to https://docs.cursor.com/context/ignore-files
201
+ .cursorignore
202
+ .cursorindexingignore
203
+
204
+ # Marimo
205
+ marimo/_static/
206
+ marimo/_lsp/
207
+ __marimo__/
208
+
209
+ ## AI Stuff
210
+
211
+ .claude/
@@ -0,0 +1,17 @@
1
+ {
2
+ "mcpServers": {
3
+ "atx": {
4
+ "command": "/home/devashish/bin/atx",
5
+ "args": [
6
+ "mcp",
7
+ "serve"
8
+ ],
9
+ "env": {
10
+ "ATX_DAEMON_PORT": "30000",
11
+ "ATX_DB_PATH": "/home/devashish/.config/atx/data/atx.db",
12
+ "ATX_PROJECT_ID": "2f7d41ac-f5fb-4466-8e2e-9e69bbef6701",
13
+ "ATX_WORKING_DIR": "/home/devashish/workspace/ric03uec/clawrium"
14
+ }
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,93 @@
1
+ # Clawrium
2
+
3
+ ## What This Is
4
+
5
+ Clawrium is a CLI/TUI tool for managing AI assistant fleets on local networks. It provides a centralized command center for installing, configuring, and maintaining multiple "claws" (AI assistants like OpenClaw, ZeroClaw, NemoClaw) across hosts, solving the chaos of configuration drift, scattered secrets, and inconsistent management.
6
+
7
+ ## Core Value
8
+
9
+ Users can manage all their AI assistants from one place with consistent configuration and security practices, regardless of which claw types they run.
10
+
11
+ ## Requirements
12
+
13
+ ### Validated
14
+
15
+ - [x] Initialize Clawrium config directory (`clm init`) — *Phase 1*
16
+ - [x] Dependency check with install instructions — *Phase 1*
17
+
18
+ ### Active
19
+
20
+ - [ ] Add/remove hosts in the fleet
21
+ - [ ] Install OpenClaw on Ubuntu hosts via Ansible
22
+ - [ ] Manage claw configs (SOUL.md, IDENTITY.md, AGENTS.md, etc.) from central store
23
+ - [ ] Sync configs from central store to hosts
24
+ - [ ] Check claw status on hosts
25
+ - [ ] Rotate API keys across claws
26
+ - [ ] Switch model providers for claws
27
+ - [ ] Add/remove agents within a claw
28
+
29
+ ### Out of Scope
30
+
31
+ - Cloud services — fully local, no external dependencies
32
+ - Non-Debian-based distros — Ubuntu and Debian for v1, other distros later
33
+ - Other claw types — OpenClaw only for v1, ZeroClaw/NemoClaw later
34
+ - GUI — CLI/TUI only, no web interface
35
+ - Multi-user/auth — single user for v1
36
+
37
+ ## Context
38
+
39
+ **Problem space:**
40
+ - AI assistants (claws) proliferate — users don't know which to install
41
+ - Each claw has different config files, formats, and locations
42
+ - Configuration drift when managing multiple instances
43
+ - Secrets (API keys) scattered across config files
44
+ - Upgrades risk breaking existing config
45
+ - No unified way to manage fleet health
46
+
47
+ **OpenClaw specifics:**
48
+ - Config lives in `~/.openclaw/workspace/`
49
+ - Key files: SOUL.md, IDENTITY.md, AGENTS.md, USER.md, MEMORY.md, HEARTBEAT.md
50
+ - Global config: `~/.openclaw/openclaw.json`
51
+
52
+ **Clawrium approach:**
53
+ - Central store at `~/.config/clawrium/`
54
+ - Registry of claw types with versions, dependencies, templates
55
+ - Ansible playbooks for installation and config sync
56
+ - Never takes sudo — prompts user for privileged operations
57
+
58
+ ## Constraints
59
+
60
+ - **Tech stack**: Python + Typer CLI, ansible-runner for execution, uv/uvx for packaging
61
+ - **Security**: No sudo permissions — Clawrium prompts user when privileged commands needed
62
+ - **Platform**: Ubuntu and Debian for v1
63
+ - **Claw support**: OpenClaw only for v1
64
+ - **Deployment**: Fully local, no cloud dependencies
65
+
66
+ ## Key Decisions
67
+
68
+ | Decision | Rationale | Outcome |
69
+ |----------|-----------|---------|
70
+ | Ansible for execution | Standard automation tool, no agent needed on hosts, SSH-based | — Pending |
71
+ | No sudo policy | Security-first, user controls privileged operations | — Pending |
72
+ | Central store in ~/.config/clawrium/ | Standard XDG location, single source of truth | — Pending |
73
+ | Start with OpenClaw | Well-documented, clear file structure, good test case | — Pending |
74
+
75
+ ## Evolution
76
+
77
+ This document evolves at phase transitions and milestone boundaries.
78
+
79
+ **After each phase transition** (via `/gsd:transition`):
80
+ 1. Requirements invalidated? → Move to Out of Scope with reason
81
+ 2. Requirements validated? → Move to Validated with phase reference
82
+ 3. New requirements emerged? → Add to Active
83
+ 4. Decisions to log? → Add to Key Decisions
84
+ 5. "What This Is" still accurate? → Update if drifted
85
+
86
+ **After each milestone** (via `/gsd:complete-milestone`):
87
+ 1. Full review of all sections
88
+ 2. Core Value check — still the right priority?
89
+ 3. Audit Out of Scope — reasons still valid?
90
+ 4. Update Context with current state
91
+
92
+ ---
93
+ *Last updated: 2026-03-21 after Phase 1 completion*
@@ -0,0 +1,118 @@
1
+ # Requirements: Clawrium
2
+
3
+ **Defined:** 2026-03-20
4
+ **Core Value:** Users can manage all their AI assistants from one place with consistent configuration and security practices.
5
+
6
+ ## v1 Requirements
7
+
8
+ Requirements for initial release: OpenClaw on single Ubuntu host.
9
+
10
+ ### Initialization
11
+
12
+ - [x] **INIT-01**: User can initialize Clawrium config directory (`clm init`)
13
+ - [x] **INIT-02**: User sees dependency check (Python, Ansible) with install instructions
14
+
15
+ ### Host Management
16
+
17
+ - [x] **HOST-01**: User can add a host with SSH details (`clm host add`)
18
+ - [x] **HOST-02**: User can list all hosts with hardware info (`clm host list`)
19
+ - [x] **HOST-03**: User can remove a host (`clm host remove`)
20
+ - [x] **HOST-04**: User can check host status (`clm host status`)
21
+ - [x] **HOST-05**: System detects hardware capabilities (arch, GPU, memory, disk)
22
+
23
+ ### Claw Registry
24
+
25
+ - [x] **REG-01**: System loads claw manifests from registry
26
+ - [x] **REG-02**: User can list available claw types (`clm registry list`)
27
+ - [x] **REG-03**: System validates claw compatibility against host capabilities
28
+
29
+ ### Claw Installation
30
+
31
+ - [x] **INST-01**: User can install OpenClaw via interactive flow (`clm install`)
32
+ - [x] **INST-02**: Installation validates compatibility before proceeding
33
+ - [x] **INST-03**: Installation streams progress in real-time
34
+ - [x] **INST-04**: Installation fails fast with clear error messages
35
+
36
+ ### Secrets Management
37
+
38
+ - [x] **SEC-01**: User can set secrets (`clm secret set`)
39
+ - [x] **SEC-02**: User can list secret keys (`clm secret list`)
40
+ - [x] **SEC-03**: Secrets stored with mode 600, never displayed
41
+
42
+ ### Fleet Status
43
+
44
+ - [x] **STAT-01**: User can view fleet status (`clm status`)
45
+
46
+ ## v2 Requirements
47
+
48
+ Deferred to future release. Tracked but not in current roadmap.
49
+
50
+ ### Agent Normalization
51
+
52
+ - **AGENT-01**: User can create portable agent definitions (`clm agent create`)
53
+ - **AGENT-02**: User can list agents (`clm agent list`)
54
+ - **AGENT-03**: User can edit agents (`clm agent edit`)
55
+ - **AGENT-04**: System translates agents to claw-specific format
56
+
57
+ ### Claw Operations
58
+
59
+ - **CLAW-01**: User can upgrade claw instances (`clm claw upgrade`)
60
+ - **CLAW-02**: User can remove claw instances (`clm claw remove`)
61
+ - **CLAW-03**: User can assign agents to claws (`clm claw agent add`)
62
+
63
+ ### Multi-Host Fleet
64
+
65
+ - **FLEET-01**: User can manage multiple hosts
66
+ - **FLEET-02**: User can sync configs across hosts
67
+
68
+ ### Additional Claw Types
69
+
70
+ - **TYPE-01**: ZeroClaw support
71
+ - **TYPE-02**: NemoClaw support
72
+
73
+ ## Out of Scope
74
+
75
+ Explicitly excluded. Documented to prevent scope creep.
76
+
77
+ | Feature | Reason |
78
+ |---------|--------|
79
+ | TUI interface | CLI first, TUI later |
80
+ | Cloud services | Fully local, no external dependencies |
81
+ | Non-Ubuntu distros | Ubuntu only for v1, other distros later |
82
+ | Security hardening (airgap, sandboxing) | Table stakes first, hardening in v2+ |
83
+ | GUI/web interface | CLI/TUI only |
84
+ | Multi-user auth | Single user for v1 |
85
+
86
+ ## Traceability
87
+
88
+ Which phases cover which requirements. Updated during roadmap creation.
89
+
90
+ | Requirement | Phase | Status |
91
+ |-------------|-------|--------|
92
+ | INIT-01 | Phase 1 | Complete |
93
+ | INIT-02 | Phase 1 | Complete |
94
+ | HOST-01 | Phase 2 | Complete |
95
+ | HOST-02 | Phase 2 | Complete |
96
+ | HOST-03 | Phase 2 | Complete |
97
+ | HOST-04 | Phase 2 | Complete |
98
+ | HOST-05 | Phase 2 | Complete |
99
+ | REG-01 | Phase 3 | Complete |
100
+ | REG-02 | Phase 3 | Complete |
101
+ | REG-03 | Phase 3 | Complete |
102
+ | INST-01 | Phase 4 | Complete |
103
+ | INST-02 | Phase 4 | Complete |
104
+ | INST-03 | Phase 4 | Complete |
105
+ | INST-04 | Phase 4 | Complete |
106
+ | STAT-01 | Phase 4 | Complete |
107
+ | SEC-01 | Phase 5 | Complete |
108
+ | SEC-02 | Phase 5 | Complete |
109
+ | SEC-03 | Phase 5 | Complete |
110
+
111
+ **Coverage:**
112
+ - v1 requirements: 17 total
113
+ - Mapped to phases: 17
114
+ - Unmapped: 0 ✓
115
+
116
+ ---
117
+ *Requirements defined: 2026-03-20*
118
+ *Last updated: 2026-03-21 after phase 4 planning*
@@ -0,0 +1,114 @@
1
+ # Roadmap: Clawrium
2
+
3
+ ## Overview
4
+
5
+ Clawrium v1 delivers a CLI tool for managing OpenClaw instances on single Ubuntu hosts. The journey progresses from foundation setup through host management, registry and compatibility checking, secrets handling, and culminates in the full installation flow with fleet status visibility. Each phase delivers complete, verifiable capabilities that build toward the core value: managing AI assistants from one place with consistent configuration and security practices.
6
+
7
+ ## Phases
8
+
9
+ **Phase Numbering:**
10
+ - Integer phases (1, 2, 3): Planned milestone work
11
+ - Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
12
+
13
+ Decimal phases appear between their surrounding integers in numeric order.
14
+
15
+ - [x] **Phase 1: Foundation Setup** - Initialize Clawrium configuration and verify dependencies (completed 2026-03-21)
16
+ - [x] **Phase 2: Host Management** - Add, list, remove hosts with hardware capability detection (completed 2026-03-21)
17
+ - [x] **Phase 3: Registry & Compatibility** - Load claw manifests and validate hardware compatibility (completed 2026-03-21)
18
+ - [x] **Phase 4: Installation & Fleet Status** - Install OpenClaw instances and view fleet status (completed 2026-03-22)
19
+ - [ ] **Phase 5: Secrets Management** - Secure storage and retrieval of API keys and credentials
20
+
21
+ ## Phase Details
22
+
23
+ ### Phase 1: Foundation Setup
24
+ **Goal**: Users can initialize Clawrium and verify all dependencies are met
25
+ **Depends on**: Nothing (first phase)
26
+ **Requirements**: INIT-01, INIT-02
27
+ **Success Criteria** (what must be TRUE):
28
+ 1. User runs `clm init` and configuration directory is created at ~/.config/clawrium/
29
+ 2. User sees clear status of all dependencies (Python, Ansible, ansible-runner)
30
+ 3. User receives actionable install instructions for any missing dependencies
31
+ **Plans**: 2 plans
32
+
33
+ Plans:
34
+ - [x] 01-01-PLAN.md — Project scaffolding and clm init command (creates config directory)
35
+ - [x] 01-02-PLAN.md — Dependency detection with install instructions
36
+
37
+ ### Phase 2: Host Management
38
+ **Goal**: Users can manage hosts with automatic hardware capability detection
39
+ **Depends on**: Phase 1
40
+ **Requirements**: HOST-01, HOST-02, HOST-03, HOST-04, HOST-05
41
+ **Success Criteria** (what must be TRUE):
42
+ 1. User can add a host and SSH connection is tested before saving
43
+ 2. User sees detected hardware capabilities (architecture, GPU, memory, disk) when adding host
44
+ 3. User can list all hosts with hardware information displayed
45
+ 4. User can check status of any host (SSH connectivity, service health)
46
+ 5. User can remove a host and all associated resources are cleaned up
47
+ **Plans**: 4 plans
48
+
49
+ Plans:
50
+ - [x] 02-01-PLAN.md — Test scaffolding with SSH and Ansible mock fixtures
51
+ - [x] 02-02-PLAN.md — Host storage and SSH connection testing modules
52
+ - [x] 02-03-PLAN.md — Hardware capability detection via ansible-runner
53
+ - [x] 02-04-PLAN.md — CLI host commands (add, list, remove, status)
54
+
55
+ ### Phase 3: Registry & Compatibility
56
+ **Goal**: Users can browse available claw types and validate compatibility before installation
57
+ **Depends on**: Phase 2
58
+ **Requirements**: REG-01, REG-02, REG-03
59
+ **Success Criteria** (what must be TRUE):
60
+ 1. User runs `clm registry list` and sees OpenClaw with version and requirements
61
+ 2. System loads OpenClaw manifest from platform/registry/openclaw/ directory
62
+ 3. System validates host capabilities against claw requirements and reports compatibility (supported/unsupported with specific reasons)
63
+ **Plans**: 4 plans
64
+
65
+ Plans:
66
+ - [x] 03-01-PLAN.md — Create OpenClaw manifest and registry loading module (REG-01)
67
+ - [x] 03-02-PLAN.md — Extend HardwareInfo with OS detection (REG-03 foundation)
68
+ - [x] 03-03-PLAN.md — Implement compatibility checking function (REG-03)
69
+ - [x] 03-04-PLAN.md — Registry CLI commands (list, show) (REG-02)
70
+
71
+ ### Phase 4: Installation & Fleet Status
72
+ **Goal**: Users can install OpenClaw on Ubuntu hosts and view fleet status
73
+ **Depends on**: Phase 2, Phase 3
74
+ **Requirements**: INST-01, INST-02, INST-03, INST-04, STAT-01
75
+ **Success Criteria** (what must be TRUE):
76
+ 1. User runs `clm install` and flows through: pick claw → pick host → validate compatibility → install
77
+ 2. Installation validates compatibility before proceeding and fails fast if host is incompatible
78
+ 3. User sees real-time progress during installation (base setup, dependencies, claw installation)
79
+ 4. Installation fails fast with clear error messages if any step fails
80
+ 5. User runs `clm status` and sees all hosts with their claw instances, agents, and status
81
+ **Plans**: 4 plans
82
+
83
+ Plans:
84
+ - [x] 04-01-PLAN.md — Core install module and Ansible playbooks (INST-02, INST-04)
85
+ - [x] 04-02-PLAN.md — Install CLI with interactive flow and progress (INST-01, INST-03)
86
+ - [x] 04-03-PLAN.md — Install state tracking and health check module (INST-04, STAT-01)
87
+ - [x] 04-04-PLAN.md — Fleet status CLI command (STAT-01)
88
+
89
+ ### Phase 5: Secrets Management
90
+ **Goal**: Users can securely store and manage secrets for claw instances
91
+ **Depends on**: Phase 1
92
+ **Requirements**: SEC-01, SEC-02, SEC-03
93
+ **Success Criteria** (what must be TRUE):
94
+ 1. User can set a secret with `clm secret set` and it's stored with mode 600
95
+ 2. User can list secret keys with `clm secret list` and values are never displayed
96
+ 3. Secrets file is created with correct permissions (600) on first write
97
+ **Plans**: 2 plans
98
+
99
+ Plans:
100
+ - [x] 05-01-PLAN.md — Core secrets storage module and manifest schema extension (SEC-01, SEC-03)
101
+ - [x] 05-02-PLAN.md — CLI secret commands (set, list, remove) (SEC-01, SEC-02, SEC-03)
102
+
103
+ ## Progress
104
+
105
+ **Execution Order:**
106
+ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5
107
+
108
+ | Phase | Plans Complete | Status | Completed |
109
+ |-------|----------------|--------|-----------|
110
+ | 1. Foundation Setup | 2/2 | Complete | 2026-03-21 |
111
+ | 2. Host Management | 4/4 | Complete | 2026-03-21 |
112
+ | 3. Registry & Compatibility | 4/4 | Complete | 2026-03-21 |
113
+ | 4. Installation & Fleet Status | 4/4 | Complete | 2026-03-22 |
114
+ | 5. Secrets Management | 0/2 | Planning complete | - |