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.
- hyperclaw-0.1.0a0/LICENSE +21 -0
- hyperclaw-0.1.0a0/PKG-INFO +218 -0
- hyperclaw-0.1.0a0/README.md +192 -0
- hyperclaw-0.1.0a0/cli/__init__.py +1 -0
- hyperclaw-0.1.0a0/cli/doctor.py +196 -0
- hyperclaw-0.1.0a0/cli/hyperclaw.py +1028 -0
- hyperclaw-0.1.0a0/cli/onboarding.py +248 -0
- hyperclaw-0.1.0a0/core/__init__.py +1 -0
- hyperclaw-0.1.0a0/core/connectors/__init__.py +119 -0
- hyperclaw-0.1.0a0/core/connectors/infrastructure.py +772 -0
- hyperclaw-0.1.0a0/core/connectors/messaging.py +586 -0
- hyperclaw-0.1.0a0/core/connectors/productivity.py +764 -0
- hyperclaw-0.1.0a0/core/connectors/smarthome.py +528 -0
- hyperclaw-0.1.0a0/core/connectors/social.py +730 -0
- hyperclaw-0.1.0a0/core/hyperrouter/__init__.py +23 -0
- hyperclaw-0.1.0a0/core/hyperrouter/bandit.py +216 -0
- hyperclaw-0.1.0a0/core/hyperrouter/fast_loop.py +68 -0
- hyperclaw-0.1.0a0/core/hyperrouter/slow_loop.py +143 -0
- hyperclaw-0.1.0a0/core/hyperstate/__init__.py +24 -0
- hyperclaw-0.1.0a0/core/hyperstate/certifier.py +154 -0
- hyperclaw-0.1.0a0/core/hyperstate/schema.py +160 -0
- hyperclaw-0.1.0a0/core/hyperstate/state_manager.py +103 -0
- hyperclaw-0.1.0a0/core/hyperstate/store.py +163 -0
- hyperclaw-0.1.0a0/core/providers/__init__.py +121 -0
- hyperclaw-0.1.0a0/core/providers/embeddings.py +353 -0
- hyperclaw-0.1.0a0/core/providers/image.py +525 -0
- hyperclaw-0.1.0a0/core/providers/llm.py +1929 -0
- hyperclaw-0.1.0a0/core/providers/search.py +604 -0
- hyperclaw-0.1.0a0/core/providers/voice.py +474 -0
- hyperclaw-0.1.0a0/hyperclaw/__init__.py +21 -0
- hyperclaw-0.1.0a0/hyperclaw/agent.py +739 -0
- hyperclaw-0.1.0a0/hyperclaw/feeds.py +339 -0
- hyperclaw-0.1.0a0/hyperclaw/integrations_layer.py +495 -0
- hyperclaw-0.1.0a0/hyperclaw/prometheus.py +409 -0
- hyperclaw-0.1.0a0/hyperclaw/scheduler.py +282 -0
- hyperclaw-0.1.0a0/hyperclaw/skills.py +707 -0
- hyperclaw-0.1.0a0/hyperclaw/solomon.py +362 -0
- hyperclaw-0.1.0a0/hyperclaw/swarm.py +479 -0
- hyperclaw-0.1.0a0/hyperclaw/telegram_bot.py +248 -0
- hyperclaw-0.1.0a0/hyperclaw/trading/__init__.py +77 -0
- hyperclaw-0.1.0a0/hyperclaw/tts.py +124 -0
- hyperclaw-0.1.0a0/hyperclaw/tui.py +2770 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/PKG-INFO +218 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/SOURCES.txt +132 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/dependency_links.txt +1 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/entry_points.txt +3 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/requires.txt +17 -0
- hyperclaw-0.1.0a0/hyperclaw.egg-info/top_level.txt +9 -0
- hyperclaw-0.1.0a0/memory/__init__.py +1 -0
- hyperclaw-0.1.0a0/memory/causal_graph.py +120 -0
- hyperclaw-0.1.0a0/memory/impact_tracker.py +85 -0
- hyperclaw-0.1.0a0/memory/vector_memory.py +323 -0
- hyperclaw-0.1.0a0/models/__init__.py +12 -0
- hyperclaw-0.1.0a0/models/chatjimmy_client.py +207 -0
- hyperclaw-0.1.0a0/models/claude_client.py +106 -0
- hyperclaw-0.1.0a0/models/claude_code_subagent.py +192 -0
- hyperclaw-0.1.0a0/models/router.py +152 -0
- hyperclaw-0.1.0a0/pyproject.toml +44 -0
- hyperclaw-0.1.0a0/recursive/discovery_loop.py +115 -0
- hyperclaw-0.1.0a0/recursive/optimization_loop.py +132 -0
- hyperclaw-0.1.0a0/recursive/validation_loop.py +36 -0
- hyperclaw-0.1.0a0/security/__init__.py +1 -0
- hyperclaw-0.1.0a0/security/audit_logger.py +106 -0
- hyperclaw-0.1.0a0/security/filesystem_guard.py +100 -0
- hyperclaw-0.1.0a0/security/hypershield.py +99 -0
- hyperclaw-0.1.0a0/security/network_guard.py +97 -0
- hyperclaw-0.1.0a0/security/policy_engine.py +198 -0
- hyperclaw-0.1.0a0/setup.cfg +4 -0
- hyperclaw-0.1.0a0/swarm/__init__.py +1 -0
- hyperclaw-0.1.0a0/swarm/agents/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/base.py +226 -0
- hyperclaw-0.1.0a0/swarm/agents/business/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/business/counsel.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/business/herald.py +32 -0
- hyperclaw-0.1.0a0/swarm/agents/business/ledger.py +26 -0
- hyperclaw-0.1.0a0/swarm/agents/business/nexus.py +30 -0
- hyperclaw-0.1.0a0/swarm/agents/business/ops.py +30 -0
- hyperclaw-0.1.0a0/swarm/agents/business/pipeline.py +28 -0
- hyperclaw-0.1.0a0/swarm/agents/business/revenue.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/business/sovereign.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/business/strategos.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/business/talent.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/business/venture.py +35 -0
- hyperclaw-0.1.0a0/swarm/agents/comms/cipher.py +32 -0
- hyperclaw-0.1.0a0/swarm/agents/comms/echo_comms.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/comms/envoy.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/comms/herald_scheduler.py +33 -0
- hyperclaw-0.1.0a0/swarm/agents/comms/pulse.py +29 -0
- hyperclaw-0.1.0a0/swarm/agents/creative/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/creative/author.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/creative/lens.py +25 -0
- hyperclaw-0.1.0a0/swarm/agents/executive/__init__.py +1 -0
- hyperclaw-0.1.0a0/swarm/agents/executive/genesis.py +30 -0
- hyperclaw-0.1.0a0/swarm/agents/executive/gil.py +29 -0
- hyperclaw-0.1.0a0/swarm/agents/executive/solomon.py +29 -0
- hyperclaw-0.1.0a0/swarm/agents/intelligence/arbiter.py +30 -0
- hyperclaw-0.1.0a0/swarm/agents/intelligence/prophet.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/intelligence/sentinel.py +30 -0
- hyperclaw-0.1.0a0/swarm/agents/media/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/atlas.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/hearth.py +26 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/midas.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/navigator.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/nourish.py +31 -0
- hyperclaw-0.1.0a0/swarm/agents/personal/vitals.py +33 -0
- hyperclaw-0.1.0a0/swarm/agents/recursive/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/recursive/alchemist.py +73 -0
- hyperclaw-0.1.0a0/swarm/agents/recursive/calibrator.py +45 -0
- hyperclaw-0.1.0a0/swarm/agents/recursive/scout.py +97 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/cosmos.py +36 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/gaia.py +26 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/medicus.py +33 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/oracle_agent.py +39 -0
- hyperclaw-0.1.0a0/swarm/agents/scientific/scribe.py +39 -0
- hyperclaw-0.1.0a0/swarm/agents/talent/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/talent/deal.py +28 -0
- hyperclaw-0.1.0a0/swarm/agents/talent/roster.py +29 -0
- hyperclaw-0.1.0a0/swarm/agents/talent/scout.py +29 -0
- hyperclaw-0.1.0a0/swarm/agents/talent/stage.py +27 -0
- hyperclaw-0.1.0a0/swarm/agents/tech/__init__.py +0 -0
- hyperclaw-0.1.0a0/swarm/agents/tech/aegis.py +28 -0
- hyperclaw-0.1.0a0/swarm/agents/tech/bridge.py +28 -0
- hyperclaw-0.1.0a0/swarm/agents/tech/forge.py +28 -0
- hyperclaw-0.1.0a0/swarm/agents/trading/global_prediction_engine.py +611 -0
- hyperclaw-0.1.0a0/swarm/agents/trading/polymarket_trader.py +169 -0
- hyperclaw-0.1.0a0/swarm/agents/trading/prediction_strategist.py +218 -0
- hyperclaw-0.1.0a0/swarm/autogen_bridge.py +68 -0
- hyperclaw-0.1.0a0/swarm/bid_protocol.py +196 -0
- hyperclaw-0.1.0a0/swarm/dispatcher.py +517 -0
- hyperclaw-0.1.0a0/swarm/nexus.py +181 -0
- hyperclaw-0.1.0a0/swarm/registry.py +188 -0
- 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)
|
|
32
|
+
[](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 | [](https://railway.app/template/hyperclaw) |
|
|
91
|
+
| Render | [](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)
|
|
6
|
+
[](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 | [](https://railway.app/template/hyperclaw) |
|
|
65
|
+
| Render | [](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
|