hyperclaw 0.1.0a0__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 (134) hide show
  1. hyperclaw-0.1.0a0/LICENSE +21 -0
  2. hyperclaw-0.1.0a0/PKG-INFO +218 -0
  3. hyperclaw-0.1.0a0/README.md +192 -0
  4. hyperclaw-0.1.0a0/cli/__init__.py +1 -0
  5. hyperclaw-0.1.0a0/cli/doctor.py +196 -0
  6. hyperclaw-0.1.0a0/cli/hyperclaw.py +1028 -0
  7. hyperclaw-0.1.0a0/cli/onboarding.py +248 -0
  8. hyperclaw-0.1.0a0/core/__init__.py +1 -0
  9. hyperclaw-0.1.0a0/core/connectors/__init__.py +119 -0
  10. hyperclaw-0.1.0a0/core/connectors/infrastructure.py +772 -0
  11. hyperclaw-0.1.0a0/core/connectors/messaging.py +586 -0
  12. hyperclaw-0.1.0a0/core/connectors/productivity.py +764 -0
  13. hyperclaw-0.1.0a0/core/connectors/smarthome.py +528 -0
  14. hyperclaw-0.1.0a0/core/connectors/social.py +730 -0
  15. hyperclaw-0.1.0a0/core/hyperrouter/__init__.py +23 -0
  16. hyperclaw-0.1.0a0/core/hyperrouter/bandit.py +216 -0
  17. hyperclaw-0.1.0a0/core/hyperrouter/fast_loop.py +68 -0
  18. hyperclaw-0.1.0a0/core/hyperrouter/slow_loop.py +143 -0
  19. hyperclaw-0.1.0a0/core/hyperstate/__init__.py +24 -0
  20. hyperclaw-0.1.0a0/core/hyperstate/certifier.py +154 -0
  21. hyperclaw-0.1.0a0/core/hyperstate/schema.py +160 -0
  22. hyperclaw-0.1.0a0/core/hyperstate/state_manager.py +103 -0
  23. hyperclaw-0.1.0a0/core/hyperstate/store.py +163 -0
  24. hyperclaw-0.1.0a0/core/providers/__init__.py +121 -0
  25. hyperclaw-0.1.0a0/core/providers/embeddings.py +353 -0
  26. hyperclaw-0.1.0a0/core/providers/image.py +525 -0
  27. hyperclaw-0.1.0a0/core/providers/llm.py +1929 -0
  28. hyperclaw-0.1.0a0/core/providers/search.py +604 -0
  29. hyperclaw-0.1.0a0/core/providers/voice.py +474 -0
  30. hyperclaw-0.1.0a0/hyperclaw/__init__.py +21 -0
  31. hyperclaw-0.1.0a0/hyperclaw/agent.py +739 -0
  32. hyperclaw-0.1.0a0/hyperclaw/feeds.py +339 -0
  33. hyperclaw-0.1.0a0/hyperclaw/integrations_layer.py +495 -0
  34. hyperclaw-0.1.0a0/hyperclaw/prometheus.py +409 -0
  35. hyperclaw-0.1.0a0/hyperclaw/scheduler.py +282 -0
  36. hyperclaw-0.1.0a0/hyperclaw/skills.py +707 -0
  37. hyperclaw-0.1.0a0/hyperclaw/solomon.py +362 -0
  38. hyperclaw-0.1.0a0/hyperclaw/swarm.py +479 -0
  39. hyperclaw-0.1.0a0/hyperclaw/telegram_bot.py +248 -0
  40. hyperclaw-0.1.0a0/hyperclaw/trading/__init__.py +77 -0
  41. hyperclaw-0.1.0a0/hyperclaw/tts.py +124 -0
  42. hyperclaw-0.1.0a0/hyperclaw/tui.py +2770 -0
  43. hyperclaw-0.1.0a0/hyperclaw.egg-info/PKG-INFO +218 -0
  44. hyperclaw-0.1.0a0/hyperclaw.egg-info/SOURCES.txt +132 -0
  45. hyperclaw-0.1.0a0/hyperclaw.egg-info/dependency_links.txt +1 -0
  46. hyperclaw-0.1.0a0/hyperclaw.egg-info/entry_points.txt +3 -0
  47. hyperclaw-0.1.0a0/hyperclaw.egg-info/requires.txt +17 -0
  48. hyperclaw-0.1.0a0/hyperclaw.egg-info/top_level.txt +9 -0
  49. hyperclaw-0.1.0a0/memory/__init__.py +1 -0
  50. hyperclaw-0.1.0a0/memory/causal_graph.py +120 -0
  51. hyperclaw-0.1.0a0/memory/impact_tracker.py +85 -0
  52. hyperclaw-0.1.0a0/memory/vector_memory.py +323 -0
  53. hyperclaw-0.1.0a0/models/__init__.py +12 -0
  54. hyperclaw-0.1.0a0/models/chatjimmy_client.py +207 -0
  55. hyperclaw-0.1.0a0/models/claude_client.py +106 -0
  56. hyperclaw-0.1.0a0/models/claude_code_subagent.py +192 -0
  57. hyperclaw-0.1.0a0/models/router.py +152 -0
  58. hyperclaw-0.1.0a0/pyproject.toml +44 -0
  59. hyperclaw-0.1.0a0/recursive/discovery_loop.py +115 -0
  60. hyperclaw-0.1.0a0/recursive/optimization_loop.py +132 -0
  61. hyperclaw-0.1.0a0/recursive/validation_loop.py +36 -0
  62. hyperclaw-0.1.0a0/security/__init__.py +1 -0
  63. hyperclaw-0.1.0a0/security/audit_logger.py +106 -0
  64. hyperclaw-0.1.0a0/security/filesystem_guard.py +100 -0
  65. hyperclaw-0.1.0a0/security/hypershield.py +99 -0
  66. hyperclaw-0.1.0a0/security/network_guard.py +97 -0
  67. hyperclaw-0.1.0a0/security/policy_engine.py +198 -0
  68. hyperclaw-0.1.0a0/setup.cfg +4 -0
  69. hyperclaw-0.1.0a0/swarm/__init__.py +1 -0
  70. hyperclaw-0.1.0a0/swarm/agents/__init__.py +0 -0
  71. hyperclaw-0.1.0a0/swarm/agents/base.py +226 -0
  72. hyperclaw-0.1.0a0/swarm/agents/business/__init__.py +0 -0
  73. hyperclaw-0.1.0a0/swarm/agents/business/counsel.py +31 -0
  74. hyperclaw-0.1.0a0/swarm/agents/business/herald.py +32 -0
  75. hyperclaw-0.1.0a0/swarm/agents/business/ledger.py +26 -0
  76. hyperclaw-0.1.0a0/swarm/agents/business/nexus.py +30 -0
  77. hyperclaw-0.1.0a0/swarm/agents/business/ops.py +30 -0
  78. hyperclaw-0.1.0a0/swarm/agents/business/pipeline.py +28 -0
  79. hyperclaw-0.1.0a0/swarm/agents/business/revenue.py +31 -0
  80. hyperclaw-0.1.0a0/swarm/agents/business/sovereign.py +31 -0
  81. hyperclaw-0.1.0a0/swarm/agents/business/strategos.py +27 -0
  82. hyperclaw-0.1.0a0/swarm/agents/business/talent.py +27 -0
  83. hyperclaw-0.1.0a0/swarm/agents/business/venture.py +35 -0
  84. hyperclaw-0.1.0a0/swarm/agents/comms/cipher.py +32 -0
  85. hyperclaw-0.1.0a0/swarm/agents/comms/echo_comms.py +31 -0
  86. hyperclaw-0.1.0a0/swarm/agents/comms/envoy.py +31 -0
  87. hyperclaw-0.1.0a0/swarm/agents/comms/herald_scheduler.py +33 -0
  88. hyperclaw-0.1.0a0/swarm/agents/comms/pulse.py +29 -0
  89. hyperclaw-0.1.0a0/swarm/agents/creative/__init__.py +0 -0
  90. hyperclaw-0.1.0a0/swarm/agents/creative/author.py +27 -0
  91. hyperclaw-0.1.0a0/swarm/agents/creative/lens.py +25 -0
  92. hyperclaw-0.1.0a0/swarm/agents/executive/__init__.py +1 -0
  93. hyperclaw-0.1.0a0/swarm/agents/executive/genesis.py +30 -0
  94. hyperclaw-0.1.0a0/swarm/agents/executive/gil.py +29 -0
  95. hyperclaw-0.1.0a0/swarm/agents/executive/solomon.py +29 -0
  96. hyperclaw-0.1.0a0/swarm/agents/intelligence/arbiter.py +30 -0
  97. hyperclaw-0.1.0a0/swarm/agents/intelligence/prophet.py +31 -0
  98. hyperclaw-0.1.0a0/swarm/agents/intelligence/sentinel.py +30 -0
  99. hyperclaw-0.1.0a0/swarm/agents/media/__init__.py +0 -0
  100. hyperclaw-0.1.0a0/swarm/agents/personal/__init__.py +0 -0
  101. hyperclaw-0.1.0a0/swarm/agents/personal/atlas.py +27 -0
  102. hyperclaw-0.1.0a0/swarm/agents/personal/hearth.py +26 -0
  103. hyperclaw-0.1.0a0/swarm/agents/personal/midas.py +27 -0
  104. hyperclaw-0.1.0a0/swarm/agents/personal/navigator.py +27 -0
  105. hyperclaw-0.1.0a0/swarm/agents/personal/nourish.py +31 -0
  106. hyperclaw-0.1.0a0/swarm/agents/personal/vitals.py +33 -0
  107. hyperclaw-0.1.0a0/swarm/agents/recursive/__init__.py +0 -0
  108. hyperclaw-0.1.0a0/swarm/agents/recursive/alchemist.py +73 -0
  109. hyperclaw-0.1.0a0/swarm/agents/recursive/calibrator.py +45 -0
  110. hyperclaw-0.1.0a0/swarm/agents/recursive/scout.py +97 -0
  111. hyperclaw-0.1.0a0/swarm/agents/scientific/__init__.py +0 -0
  112. hyperclaw-0.1.0a0/swarm/agents/scientific/cosmos.py +36 -0
  113. hyperclaw-0.1.0a0/swarm/agents/scientific/gaia.py +26 -0
  114. hyperclaw-0.1.0a0/swarm/agents/scientific/medicus.py +33 -0
  115. hyperclaw-0.1.0a0/swarm/agents/scientific/oracle_agent.py +39 -0
  116. hyperclaw-0.1.0a0/swarm/agents/scientific/scribe.py +39 -0
  117. hyperclaw-0.1.0a0/swarm/agents/talent/__init__.py +0 -0
  118. hyperclaw-0.1.0a0/swarm/agents/talent/deal.py +28 -0
  119. hyperclaw-0.1.0a0/swarm/agents/talent/roster.py +29 -0
  120. hyperclaw-0.1.0a0/swarm/agents/talent/scout.py +29 -0
  121. hyperclaw-0.1.0a0/swarm/agents/talent/stage.py +27 -0
  122. hyperclaw-0.1.0a0/swarm/agents/tech/__init__.py +0 -0
  123. hyperclaw-0.1.0a0/swarm/agents/tech/aegis.py +28 -0
  124. hyperclaw-0.1.0a0/swarm/agents/tech/bridge.py +28 -0
  125. hyperclaw-0.1.0a0/swarm/agents/tech/forge.py +28 -0
  126. hyperclaw-0.1.0a0/swarm/agents/trading/global_prediction_engine.py +611 -0
  127. hyperclaw-0.1.0a0/swarm/agents/trading/polymarket_trader.py +169 -0
  128. hyperclaw-0.1.0a0/swarm/agents/trading/prediction_strategist.py +218 -0
  129. hyperclaw-0.1.0a0/swarm/autogen_bridge.py +68 -0
  130. hyperclaw-0.1.0a0/swarm/bid_protocol.py +196 -0
  131. hyperclaw-0.1.0a0/swarm/dispatcher.py +517 -0
  132. hyperclaw-0.1.0a0/swarm/nexus.py +181 -0
  133. hyperclaw-0.1.0a0/swarm/registry.py +188 -0
  134. hyperclaw-0.1.0a0/ui/tui/app.py +213 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Hyper Nimbus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,218 @@
1
+ Metadata-Version: 2.4
2
+ Name: hyperclaw
3
+ Version: 0.1.0a0
4
+ Summary: Unlimited-domain multi-agent AI swarm platform
5
+ License: MIT
6
+ Requires-Python: >=3.11
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: pydantic>=2.0
10
+ Requires-Dist: asyncpg>=0.29
11
+ Requires-Dist: pgvector>=0.2
12
+ Requires-Dist: httpx>=0.27
13
+ Requires-Dist: typer>=0.12
14
+ Requires-Dist: rich>=13.0
15
+ Requires-Dist: textual>=0.61
16
+ Requires-Dist: anthropic>=0.28
17
+ Requires-Dist: python-dotenv>=1.0
18
+ Requires-Dist: pyyaml>=6.0
19
+ Requires-Dist: fastapi>=0.109
20
+ Requires-Dist: uvicorn[standard]>=0.27
21
+ Provides-Extra: dev
22
+ Requires-Dist: pytest>=8.0; extra == "dev"
23
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
24
+ Requires-Dist: pytest-cov>=4.1; extra == "dev"
25
+ Dynamic: license-file
26
+
27
+ # HyperClaw
28
+
29
+ **Your personal AI that actually gets things done.**
30
+
31
+ [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
32
+ [![Python](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org/downloads/)
33
+
34
+ HyperClaw is a personal AI assistant that works across your entire life. Not just chat — it connects to your email, calendar, tasks, documents, and more. It remembers everything, learns your preferences, and coordinates 50+ specialized AI agents to help you with anything.
35
+
36
+ ---
37
+
38
+ ## What Can It Do?
39
+
40
+ - **Manage your communications** — Email, Telegram, Slack, Discord, WhatsApp, Teams
41
+ - **Organize your work** — Calendar, tasks, projects, documents
42
+ - **Handle your data** — Notion, Airtable, Google Sheets, Salesforce, HubSpot
43
+ - **Support your business** — Invoicing, customer tracking, sales pipelines
44
+ - **Research anything** — Web search, document analysis, data synthesis
45
+ - **Remember everything** — Your preferences, history, context across all sessions
46
+
47
+ One AI. Every platform. All working together.
48
+
49
+ ---
50
+
51
+ ## Getting Started
52
+
53
+ ### Option 1: Quick Start (5 minutes)
54
+
55
+ ```bash
56
+ # Install
57
+ pip install hyperclaw
58
+
59
+ # Run setup
60
+ hyperclaw init
61
+ ```
62
+
63
+ The setup walks you through everything — no technical knowledge needed.
64
+
65
+ ### Option 2: Self-Host with Docker
66
+
67
+ ```bash
68
+ # Clone the repo
69
+ git clone https://github.com/mentatalbans/hyperclaw.git
70
+ cd hyperclaw
71
+
72
+ # Copy the example config
73
+ cp .env.example .env
74
+
75
+ # Edit .env and add your Anthropic API key
76
+ # ANTHROPIC_API_KEY=sk-ant-your-key
77
+
78
+ # Start
79
+ docker-compose up
80
+ ```
81
+
82
+ Open `http://localhost:8000` in your browser.
83
+
84
+ ### Option 3: One-Click Cloud Deploy
85
+
86
+ Deploy to your favorite cloud platform:
87
+
88
+ | Platform | Deploy |
89
+ |----------|--------|
90
+ | Railway | [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/hyperclaw) |
91
+ | Render | [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/mentatalbans/hyperclaw) |
92
+ | Fly.io | `fly launch` |
93
+
94
+ ---
95
+
96
+ ## What You Need
97
+
98
+ ### Required
99
+ - **Anthropic API Key** — Powers the AI brain
100
+ - Get one free at [console.anthropic.com](https://console.anthropic.com)
101
+
102
+ ### Optional (but recommended)
103
+ - **Database** — Enables memory across sessions
104
+ - Easiest: [Supabase](https://supabase.com) (free tier works great)
105
+ - Or: Any PostgreSQL with pgvector
106
+
107
+ ### Integrations (connect what you use)
108
+ - **Messaging:** Telegram, Slack, Discord, WhatsApp, Teams
109
+ - **Email:** Gmail, Outlook
110
+ - **Productivity:** Google Calendar, Notion, Todoist, Linear
111
+ - **Business:** Salesforce, HubSpot, Stripe, QuickBooks
112
+ - **Developer:** GitHub, Jira
113
+
114
+ See [.env.example](.env.example) for all available integrations.
115
+
116
+ ---
117
+
118
+ ## How It Works
119
+
120
+ ```
121
+ You → NEXUS (orchestrator) → 50+ Specialist Agents → Results
122
+
123
+ Example:
124
+ "Schedule a meeting with my team next week and send invites"
125
+
126
+ NEXUS coordinates:
127
+ ├── Calendar agent (finds available times)
128
+ ├── Email agent (drafts invites)
129
+ ├── Memory agent (recalls team preferences)
130
+ └── Returns: "Meeting scheduled for Tuesday 2pm. Invites sent to 4 people."
131
+ ```
132
+
133
+ ### The Agents
134
+
135
+ | Domain | What They Do |
136
+ |--------|-------------|
137
+ | Business | Finance, contracts, market analysis |
138
+ | Communications | Email, messaging, scheduling |
139
+ | Personal | Health, fitness, reminders |
140
+ | Research | Web search, document analysis |
141
+ | Creative | Writing, design, brainstorming |
142
+ | Technical | Code, debugging, architecture |
143
+
144
+ ---
145
+
146
+ ## Commands
147
+
148
+ ```bash
149
+ hyperclaw init # First-time setup (guided)
150
+ hyperclaw start # Start the system
151
+ hyperclaw doctor # Check if everything's working
152
+
153
+ hyperclaw swarm "..." # Ask anything
154
+ hyperclaw agent # List all agents
155
+ hyperclaw integrations # Manage connections
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Dashboard
161
+
162
+ HyperClaw includes a web dashboard at `http://localhost:8000`:
163
+
164
+ - **Chat** — Talk to NEXUS
165
+ - **Integrations** — Connect your services with visual setup wizards
166
+ - **Agents** — See all 50+ specialists
167
+ - **Memory** — View what HyperClaw remembers
168
+ - **Settings** — Configure your system
169
+
170
+ ---
171
+
172
+ ## Privacy & Security
173
+
174
+ - **Your data stays yours** — Self-host means nothing leaves your machine
175
+ - **No tracking** — We don't collect anything
176
+ - **Open source** — Audit the code yourself
177
+ - **Per-agent permissions** — Control what each agent can access
178
+
179
+ ---
180
+
181
+ ## Troubleshooting
182
+
183
+ **"API key not working"**
184
+ - Make sure it starts with `sk-ant-`
185
+ - Check for extra spaces when pasting
186
+
187
+ **"Database connection failed"**
188
+ - Verify your DATABASE_URL is correct
189
+ - For Supabase, use the "Transaction pooler" connection string
190
+
191
+ **"Integration not connecting"**
192
+ - Run `hyperclaw integrations test <name>` to diagnose
193
+ - Check that API keys are in your `.env` file
194
+
195
+ **Need help?**
196
+ - Run `hyperclaw doctor` to check system health
197
+ - Open an issue on [GitHub](https://github.com/mentatalbans/hyperclaw/issues)
198
+
199
+ ---
200
+
201
+ ## Contributing
202
+
203
+ MIT licensed. Contributions welcome.
204
+
205
+ ```bash
206
+ git clone https://github.com/mentatalbans/hyperclaw.git
207
+ cd hyperclaw
208
+ pip install -e ".[dev]"
209
+ python -m pytest tests/ -v
210
+ ```
211
+
212
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
213
+
214
+ ---
215
+
216
+ ## License
217
+
218
+ MIT — use it, modify it, build on it.
@@ -0,0 +1,192 @@
1
+ # HyperClaw
2
+
3
+ **Your personal AI that actually gets things done.**
4
+
5
+ [![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
6
+ [![Python](https://img.shields.io/badge/python-3.11%2B-blue)](https://www.python.org/downloads/)
7
+
8
+ HyperClaw is a personal AI assistant that works across your entire life. Not just chat — it connects to your email, calendar, tasks, documents, and more. It remembers everything, learns your preferences, and coordinates 50+ specialized AI agents to help you with anything.
9
+
10
+ ---
11
+
12
+ ## What Can It Do?
13
+
14
+ - **Manage your communications** — Email, Telegram, Slack, Discord, WhatsApp, Teams
15
+ - **Organize your work** — Calendar, tasks, projects, documents
16
+ - **Handle your data** — Notion, Airtable, Google Sheets, Salesforce, HubSpot
17
+ - **Support your business** — Invoicing, customer tracking, sales pipelines
18
+ - **Research anything** — Web search, document analysis, data synthesis
19
+ - **Remember everything** — Your preferences, history, context across all sessions
20
+
21
+ One AI. Every platform. All working together.
22
+
23
+ ---
24
+
25
+ ## Getting Started
26
+
27
+ ### Option 1: Quick Start (5 minutes)
28
+
29
+ ```bash
30
+ # Install
31
+ pip install hyperclaw
32
+
33
+ # Run setup
34
+ hyperclaw init
35
+ ```
36
+
37
+ The setup walks you through everything — no technical knowledge needed.
38
+
39
+ ### Option 2: Self-Host with Docker
40
+
41
+ ```bash
42
+ # Clone the repo
43
+ git clone https://github.com/mentatalbans/hyperclaw.git
44
+ cd hyperclaw
45
+
46
+ # Copy the example config
47
+ cp .env.example .env
48
+
49
+ # Edit .env and add your Anthropic API key
50
+ # ANTHROPIC_API_KEY=sk-ant-your-key
51
+
52
+ # Start
53
+ docker-compose up
54
+ ```
55
+
56
+ Open `http://localhost:8000` in your browser.
57
+
58
+ ### Option 3: One-Click Cloud Deploy
59
+
60
+ Deploy to your favorite cloud platform:
61
+
62
+ | Platform | Deploy |
63
+ |----------|--------|
64
+ | Railway | [![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/hyperclaw) |
65
+ | Render | [![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/mentatalbans/hyperclaw) |
66
+ | Fly.io | `fly launch` |
67
+
68
+ ---
69
+
70
+ ## What You Need
71
+
72
+ ### Required
73
+ - **Anthropic API Key** — Powers the AI brain
74
+ - Get one free at [console.anthropic.com](https://console.anthropic.com)
75
+
76
+ ### Optional (but recommended)
77
+ - **Database** — Enables memory across sessions
78
+ - Easiest: [Supabase](https://supabase.com) (free tier works great)
79
+ - Or: Any PostgreSQL with pgvector
80
+
81
+ ### Integrations (connect what you use)
82
+ - **Messaging:** Telegram, Slack, Discord, WhatsApp, Teams
83
+ - **Email:** Gmail, Outlook
84
+ - **Productivity:** Google Calendar, Notion, Todoist, Linear
85
+ - **Business:** Salesforce, HubSpot, Stripe, QuickBooks
86
+ - **Developer:** GitHub, Jira
87
+
88
+ See [.env.example](.env.example) for all available integrations.
89
+
90
+ ---
91
+
92
+ ## How It Works
93
+
94
+ ```
95
+ You → NEXUS (orchestrator) → 50+ Specialist Agents → Results
96
+
97
+ Example:
98
+ "Schedule a meeting with my team next week and send invites"
99
+
100
+ NEXUS coordinates:
101
+ ├── Calendar agent (finds available times)
102
+ ├── Email agent (drafts invites)
103
+ ├── Memory agent (recalls team preferences)
104
+ └── Returns: "Meeting scheduled for Tuesday 2pm. Invites sent to 4 people."
105
+ ```
106
+
107
+ ### The Agents
108
+
109
+ | Domain | What They Do |
110
+ |--------|-------------|
111
+ | Business | Finance, contracts, market analysis |
112
+ | Communications | Email, messaging, scheduling |
113
+ | Personal | Health, fitness, reminders |
114
+ | Research | Web search, document analysis |
115
+ | Creative | Writing, design, brainstorming |
116
+ | Technical | Code, debugging, architecture |
117
+
118
+ ---
119
+
120
+ ## Commands
121
+
122
+ ```bash
123
+ hyperclaw init # First-time setup (guided)
124
+ hyperclaw start # Start the system
125
+ hyperclaw doctor # Check if everything's working
126
+
127
+ hyperclaw swarm "..." # Ask anything
128
+ hyperclaw agent # List all agents
129
+ hyperclaw integrations # Manage connections
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Dashboard
135
+
136
+ HyperClaw includes a web dashboard at `http://localhost:8000`:
137
+
138
+ - **Chat** — Talk to NEXUS
139
+ - **Integrations** — Connect your services with visual setup wizards
140
+ - **Agents** — See all 50+ specialists
141
+ - **Memory** — View what HyperClaw remembers
142
+ - **Settings** — Configure your system
143
+
144
+ ---
145
+
146
+ ## Privacy & Security
147
+
148
+ - **Your data stays yours** — Self-host means nothing leaves your machine
149
+ - **No tracking** — We don't collect anything
150
+ - **Open source** — Audit the code yourself
151
+ - **Per-agent permissions** — Control what each agent can access
152
+
153
+ ---
154
+
155
+ ## Troubleshooting
156
+
157
+ **"API key not working"**
158
+ - Make sure it starts with `sk-ant-`
159
+ - Check for extra spaces when pasting
160
+
161
+ **"Database connection failed"**
162
+ - Verify your DATABASE_URL is correct
163
+ - For Supabase, use the "Transaction pooler" connection string
164
+
165
+ **"Integration not connecting"**
166
+ - Run `hyperclaw integrations test <name>` to diagnose
167
+ - Check that API keys are in your `.env` file
168
+
169
+ **Need help?**
170
+ - Run `hyperclaw doctor` to check system health
171
+ - Open an issue on [GitHub](https://github.com/mentatalbans/hyperclaw/issues)
172
+
173
+ ---
174
+
175
+ ## Contributing
176
+
177
+ MIT licensed. Contributions welcome.
178
+
179
+ ```bash
180
+ git clone https://github.com/mentatalbans/hyperclaw.git
181
+ cd hyperclaw
182
+ pip install -e ".[dev]"
183
+ python -m pytest tests/ -v
184
+ ```
185
+
186
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
187
+
188
+ ---
189
+
190
+ ## License
191
+
192
+ MIT — use it, modify it, build on it.
@@ -0,0 +1 @@
1
+ # HyperClaw CLI
@@ -0,0 +1,196 @@
1
+ """
2
+ hyperclaw doctor — system health check.
3
+ Verifies API keys, DB connection, pgvector, policy files, and dependencies.
4
+ """
5
+ from __future__ import annotations
6
+
7
+ import asyncio
8
+ import importlib
9
+ import os
10
+ import sys
11
+ from pathlib import Path
12
+ from typing import Callable
13
+
14
+ from rich.console import Console
15
+ from rich.table import Table
16
+ from rich import print as rprint
17
+
18
+ console = Console()
19
+
20
+ CHECK_MARK = "[bold green]✓[/bold green]"
21
+ CROSS_MARK = "[bold red]✗[/bold red]"
22
+ WARN_MARK = "[bold yellow]⚠[/bold yellow]"
23
+
24
+
25
+ def _check(label: str, ok: bool, detail: str = "", warn: bool = False) -> dict:
26
+ status = CHECK_MARK if ok else (WARN_MARK if warn else CROSS_MARK)
27
+ return {"label": label, "ok": ok, "warn": warn, "detail": detail, "status": status}
28
+
29
+
30
+ async def _check_db(db_url: str) -> dict:
31
+ try:
32
+ import asyncpg
33
+ conn = await asyncpg.connect(db_url, timeout=5)
34
+ await conn.close()
35
+ return _check("PostgreSQL connection", True, db_url.split("@")[-1] if "@" in db_url else db_url)
36
+ except Exception as e:
37
+ return _check("PostgreSQL connection", False, str(e)[:80])
38
+
39
+
40
+ async def _check_pgvector(db_url: str) -> dict:
41
+ try:
42
+ import asyncpg
43
+ conn = await asyncpg.connect(db_url, timeout=5)
44
+ row = await conn.fetchval(
45
+ "SELECT COUNT(*) FROM pg_extension WHERE extname = 'vector'"
46
+ )
47
+ await conn.close()
48
+ if row:
49
+ return _check("pgvector extension", True, "installed")
50
+ else:
51
+ return _check("pgvector extension", False,
52
+ "Not installed — run: CREATE EXTENSION vector; in your DB", warn=True)
53
+ except Exception as e:
54
+ return _check("pgvector extension", False, str(e)[:80])
55
+
56
+
57
+ async def _check_migrations(db_url: str) -> dict:
58
+ try:
59
+ import asyncpg
60
+ conn = await asyncpg.connect(db_url, timeout=5)
61
+ exists = await conn.fetchval(
62
+ "SELECT EXISTS(SELECT 1 FROM information_schema.tables WHERE table_name='_migrations')"
63
+ )
64
+ if exists:
65
+ applied = await conn.fetch("SELECT filename FROM _migrations ORDER BY filename")
66
+ names = [r["filename"] for r in applied]
67
+ await conn.close()
68
+ return _check("DB migrations", True, f"{len(names)} applied: {', '.join(names)}")
69
+ else:
70
+ await conn.close()
71
+ return _check("DB migrations", False,
72
+ "Not initialized — run: hyperclaw init", warn=True)
73
+ except Exception as e:
74
+ return _check("DB migrations", False, str(e)[:80])
75
+
76
+
77
+ def run_doctor() -> int:
78
+ """
79
+ Run all health checks and print results.
80
+ Returns 0 if all critical checks pass, 1 if any fail.
81
+ """
82
+ console.print("\n[bold cyan]⚡ HyperClaw Doctor[/bold cyan]\n")
83
+
84
+ checks: list[dict] = []
85
+ db_url = os.environ.get("DATABASE_URL", "")
86
+
87
+ # ── Python version ────────────────────────────────────────────────────────
88
+ py = sys.version_info
89
+ checks.append(_check(
90
+ "Python version",
91
+ py >= (3, 11),
92
+ f"{py.major}.{py.minor}.{py.micro}",
93
+ warn=(py >= (3, 11)),
94
+ ))
95
+
96
+ # ── Required packages ─────────────────────────────────────────────────────
97
+ required_packages = {
98
+ "pydantic": "pydantic",
99
+ "asyncpg": "asyncpg",
100
+ "anthropic": "anthropic",
101
+ "httpx": "httpx",
102
+ "typer": "typer",
103
+ "rich": "rich",
104
+ "yaml": "yaml (pyyaml)",
105
+ "dotenv": "dotenv (python-dotenv)",
106
+ }
107
+ for mod, label in required_packages.items():
108
+ try:
109
+ importlib.import_module(mod)
110
+ checks.append(_check(f"Package: {label}", True))
111
+ except ImportError:
112
+ checks.append(_check(f"Package: {label}", False, f"pip install {label.split()[0]}"))
113
+
114
+ # ── Environment variables ─────────────────────────────────────────────────
115
+ anthropic_key = os.environ.get("ANTHROPIC_API_KEY", "")
116
+ checks.append(_check(
117
+ "ANTHROPIC_API_KEY",
118
+ bool(anthropic_key),
119
+ f"sk-ant-...{anthropic_key[-6:]}" if anthropic_key else "Not set — export ANTHROPIC_API_KEY=...",
120
+ ))
121
+
122
+ db_url_env = os.environ.get("DATABASE_URL", "")
123
+ checks.append(_check(
124
+ "DATABASE_URL",
125
+ bool(db_url_env),
126
+ f"...{db_url_env[-30:]}" if db_url_env else "Not set — using config/hyperclaw.yaml fallback",
127
+ warn=not bool(db_url_env),
128
+ ))
129
+
130
+ chatjimmy_key = os.environ.get("CHATJIMMY_API_KEY", "")
131
+ checks.append(_check(
132
+ "CHATJIMMY_API_KEY",
133
+ bool(chatjimmy_key),
134
+ "Set" if chatjimmy_key else "Not set — ChatJimmy will be unavailable (optional)",
135
+ warn=not bool(chatjimmy_key),
136
+ ))
137
+
138
+ # ── Config files ──────────────────────────────────────────────────────────
139
+ config_files = [
140
+ "config/hyperclaw.yaml",
141
+ "config/agents.yaml",
142
+ "config/models.yaml",
143
+ "security/policies/default.yaml",
144
+ ]
145
+ for cf in config_files:
146
+ checks.append(_check(f"Config: {cf}", Path(cf).exists(),
147
+ "Found" if Path(cf).exists() else f"Missing — run: hyperclaw init"))
148
+
149
+ # ── DB checks (async) ─────────────────────────────────────────────────────
150
+ if db_url_env:
151
+ loop = asyncio.new_event_loop()
152
+ try:
153
+ checks.append(loop.run_until_complete(_check_db(db_url_env)))
154
+ checks.append(loop.run_until_complete(_check_pgvector(db_url_env)))
155
+ checks.append(loop.run_until_complete(_check_migrations(db_url_env)))
156
+ finally:
157
+ loop.close()
158
+ else:
159
+ checks.append(_check("PostgreSQL connection", False,
160
+ "Skipped — DATABASE_URL not set", warn=True))
161
+ checks.append(_check("pgvector extension", False,
162
+ "Skipped — DATABASE_URL not set", warn=True))
163
+ checks.append(_check("DB migrations", False,
164
+ "Skipped — DATABASE_URL not set", warn=True))
165
+
166
+ # ── Print results ─────────────────────────────────────────────────────────
167
+ table = Table(show_header=True, header_style="bold cyan", expand=True)
168
+ table.add_column("Check", style="bold")
169
+ table.add_column("Status", justify="center", width=4)
170
+ table.add_column("Detail", style="dim")
171
+
172
+ for c in checks:
173
+ table.add_row(c["label"], c["status"], c["detail"])
174
+
175
+ console.print(table)
176
+
177
+ failed = [c for c in checks if not c["ok"] and not c.get("warn")]
178
+ warned = [c for c in checks if not c["ok"] and c.get("warn")]
179
+ passed = [c for c in checks if c["ok"]]
180
+
181
+ console.print(
182
+ f"\n[green]{len(passed)} passed[/green] "
183
+ f"[yellow]{len(warned)} warnings[/yellow] "
184
+ f"[red]{len(failed)} failed[/red]"
185
+ )
186
+
187
+ if failed:
188
+ console.print("\n[red]Fix the failed checks above before running hyperclaw start.[/red]")
189
+ return 1
190
+
191
+ if not warned:
192
+ console.print("\n[bold green]✓ HyperClaw is healthy and ready to run.[/bold green]")
193
+ else:
194
+ console.print("\n[bold yellow]⚠ HyperClaw has warnings — review above before running tasks.[/bold yellow]")
195
+
196
+ return 0