clawd-buddy 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.
- clawd_buddy-0.1.0/.claude/commands/buddy.md +23 -0
- clawd_buddy-0.1.0/.claude/settings.json +26 -0
- clawd_buddy-0.1.0/.gitignore +28 -0
- clawd_buddy-0.1.0/CHANGELOG.md +28 -0
- clawd_buddy-0.1.0/CONTRIBUTING.md +82 -0
- clawd_buddy-0.1.0/LICENSE +21 -0
- clawd_buddy-0.1.0/PKG-INFO +294 -0
- clawd_buddy-0.1.0/README.md +266 -0
- clawd_buddy-0.1.0/pyproject.toml +44 -0
- clawd_buddy-0.1.0/src/clawd_buddy/__init__.py +1 -0
- clawd_buddy-0.1.0/src/clawd_buddy/app.py +613 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Clawd Buddy commands
|
|
2
|
+
|
|
3
|
+
Clawd Buddy — manage the animated taskbar companion.
|
|
4
|
+
|
|
5
|
+
Usage: /buddy [action]
|
|
6
|
+
|
|
7
|
+
Actions:
|
|
8
|
+
start — Launch the buddy on the taskbar (if not already running)
|
|
9
|
+
stop — Kill the running buddy
|
|
10
|
+
test — Send a test celebration to the running buddy
|
|
11
|
+
wave — Send a wave/attention signal to the running buddy
|
|
12
|
+
status — Check if the buddy is running
|
|
13
|
+
|
|
14
|
+
If no action is given, default to "start".
|
|
15
|
+
|
|
16
|
+
Implementation:
|
|
17
|
+
|
|
18
|
+
- `clawd-buddy` is installed globally via `uv tool install`
|
|
19
|
+
- For "start": run `clawd-buddy` in the background (detached)
|
|
20
|
+
- For "stop": find the buddy process via `netstat -ano | findstr 44556` to get the PID, then `taskkill /F /PID <pid>`
|
|
21
|
+
- For "test": run `clawd-buddy --send "Test!"`
|
|
22
|
+
- For "wave": run `clawd-buddy --wave`
|
|
23
|
+
- For "status": check if port 44556 is in use via `netstat -ano | findstr 44556`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"Stop": [
|
|
4
|
+
{
|
|
5
|
+
"hooks": [
|
|
6
|
+
{
|
|
7
|
+
"type": "command",
|
|
8
|
+
"command": "clawd-buddy --send done",
|
|
9
|
+
"timeout": 5000
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"PermissionRequest": [
|
|
15
|
+
{
|
|
16
|
+
"hooks": [
|
|
17
|
+
{
|
|
18
|
+
"type": "command",
|
|
19
|
+
"command": "clawd-buddy --wave",
|
|
20
|
+
"timeout": 5000
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
*.pyo
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
*.whl
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
venv/
|
|
13
|
+
.venv/
|
|
14
|
+
|
|
15
|
+
# IDE
|
|
16
|
+
.vscode/
|
|
17
|
+
.idea/
|
|
18
|
+
*.swp
|
|
19
|
+
*.swo
|
|
20
|
+
|
|
21
|
+
# OS
|
|
22
|
+
Thumbs.db
|
|
23
|
+
Desktop.ini
|
|
24
|
+
.DS_Store
|
|
25
|
+
|
|
26
|
+
# Env
|
|
27
|
+
.env
|
|
28
|
+
.env.local
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Clawd Buddy will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## [0.1.0] - 2026-04-13
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Initial release
|
|
12
|
+
- Animated terminal character with idle, celebrate, and wave states
|
|
13
|
+
- Borderless transparent window positioned on the Windows taskbar
|
|
14
|
+
- Click-and-drag repositioning
|
|
15
|
+
- TCP socket listener (port 44556) for receiving signals
|
|
16
|
+
- `--send` flag to trigger celebration on a running instance
|
|
17
|
+
- `--wave` flag to trigger wave/attention animation
|
|
18
|
+
- `--test` flag to start with a celebration
|
|
19
|
+
- `--port` flag for custom TCP port
|
|
20
|
+
- `--no-topmost` flag to disable always-on-top
|
|
21
|
+
- `--startup` flag to enable run at Windows login
|
|
22
|
+
- `--no-startup` flag to disable run at Windows startup
|
|
23
|
+
- Single-instance enforcement via lock socket
|
|
24
|
+
- System tray icon with context menu
|
|
25
|
+
- Claude Code hook support (`Stop` and `PermissionRequest` events)
|
|
26
|
+
- Confetti particle system during celebrations
|
|
27
|
+
- Floating pulsing "!" indicator during wave state
|
|
28
|
+
- Hidden console window when started via startup launcher
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Contributing to Clawd Buddy
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in contributing!
|
|
4
|
+
|
|
5
|
+
## Development setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/ramymagdy-rm/clawd-buddy.git
|
|
9
|
+
cd clawd-buddy
|
|
10
|
+
|
|
11
|
+
# Create a venv and install in editable mode
|
|
12
|
+
uv venv
|
|
13
|
+
uv pip install -e ".[dev]"
|
|
14
|
+
|
|
15
|
+
# Or with pip
|
|
16
|
+
python -m venv venv
|
|
17
|
+
venv\Scripts\activate
|
|
18
|
+
pip install -e .
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Running locally
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Run from source
|
|
25
|
+
python -m clawd_buddy.app
|
|
26
|
+
|
|
27
|
+
# Or if installed in editable mode
|
|
28
|
+
clawd-buddy
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Project structure
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
clawd-buddy/
|
|
35
|
+
├── src/clawd_buddy/
|
|
36
|
+
│ ├── __init__.py # Package metadata
|
|
37
|
+
│ └── app.py # All application code (rendering, state, socket, tray)
|
|
38
|
+
├── .claude/
|
|
39
|
+
│ ├── settings.json # Claude Code hook definitions
|
|
40
|
+
│ └── commands/
|
|
41
|
+
│ └── buddy.md # /buddy slash command for Claude Code
|
|
42
|
+
├── pyproject.toml # Package configuration
|
|
43
|
+
├── README.md
|
|
44
|
+
├── CHANGELOG.md
|
|
45
|
+
├── CONTRIBUTING.md
|
|
46
|
+
└── LICENSE
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## How the code is organized
|
|
50
|
+
|
|
51
|
+
Everything lives in `app.py` to keep the package simple:
|
|
52
|
+
|
|
53
|
+
- **Win32 helpers** — `ctypes` calls for transparency, positioning, taskbar detection
|
|
54
|
+
- **State machine** — `BuddyState` with three modes: `idle`, `celebrating`, `waving`
|
|
55
|
+
- **Drawing** — `draw_buddy()` renders the character based on current state and time
|
|
56
|
+
- **Socket listener** — TCP server on port 44556, parses JSON `{"action": "..."}` messages
|
|
57
|
+
- **System tray** — `pystray` icon with context menu
|
|
58
|
+
- **CLI** — `argparse` for `--send`, `--wave`, `--test`, `--startup`, etc.
|
|
59
|
+
- **Main loop** — pygame event loop at 60 FPS
|
|
60
|
+
|
|
61
|
+
## Making changes
|
|
62
|
+
|
|
63
|
+
1. Fork the repo and create a feature branch
|
|
64
|
+
2. Make your changes in `src/clawd_buddy/app.py`
|
|
65
|
+
3. Test manually: `clawd-buddy --test` (celebrate), `clawd-buddy --wave` (wave signal)
|
|
66
|
+
4. Update `CHANGELOG.md` under an `[Unreleased]` section
|
|
67
|
+
5. Open a pull request
|
|
68
|
+
|
|
69
|
+
## Adding a new animation state
|
|
70
|
+
|
|
71
|
+
1. Add the state name to `BuddyState` (add a property and trigger method)
|
|
72
|
+
2. Add drawing logic in `draw_buddy()` — follow the pattern of `cel`/`wav` branches
|
|
73
|
+
3. Add a new action string in `socket_listener()` dispatch
|
|
74
|
+
4. Add a CLI flag in `parse_args()` and handle it in `main()`
|
|
75
|
+
5. Document the new hook in `README.md`
|
|
76
|
+
|
|
77
|
+
## Guidelines
|
|
78
|
+
|
|
79
|
+
- Keep everything in `app.py` unless there's a strong reason to split
|
|
80
|
+
- No external assets — all rendering is procedural (pygame draw calls)
|
|
81
|
+
- Windows-only is fine for now; cross-platform support would need platform abstraction for the win32 calls
|
|
82
|
+
- Test all three states (idle, celebrate, wave) after any drawing changes
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ramy Ezzat
|
|
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,294 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clawd-buddy
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Animated terminal pet that sits on your taskbar and reacts to AI coding assistant events
|
|
5
|
+
Project-URL: Homepage, https://github.com/ramymagdy-rm/clawd-buddy
|
|
6
|
+
Project-URL: Repository, https://github.com/ramymagdy-rm/clawd-buddy
|
|
7
|
+
Project-URL: Issues, https://github.com/ramymagdy-rm/clawd-buddy/issues
|
|
8
|
+
Author-email: Ramy Magdy <ramymagdy-rm@users.noreply.github.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: animation,buddy,clawd,coding-assistant,pet,taskbar
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Win32 (MS Windows)
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Utilities
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Requires-Dist: pillow>=10.0
|
|
25
|
+
Requires-Dist: pygame-ce>=2.5
|
|
26
|
+
Requires-Dist: pystray>=0.19
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# Clawd Buddy
|
|
30
|
+
|
|
31
|
+
A tiny animated terminal pet that sits on your Windows taskbar and reacts to [Claude Code](https://claude.ai/code) events.
|
|
32
|
+
|
|
33
|
+
<!-- TODO: add a gif/screenshot here -->
|
|
34
|
+
<!--  -->
|
|
35
|
+
|
|
36
|
+
## What it does
|
|
37
|
+
|
|
38
|
+
Clawd Buddy is a small always-on-top character that lives on your taskbar while you work with Claude Code:
|
|
39
|
+
|
|
40
|
+
| State | What happens |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| **Idle** | Gently bobs, blinks, breathes — your quiet companion |
|
|
43
|
+
| **Assistant finishes** (`Stop` hook) | Celebrates with confetti, happy eyes, and waving arms |
|
|
44
|
+
| **Assistant needs permission** (`PermissionRequest` hook) | Waves at you with a floating **!** so you know to check back |
|
|
45
|
+
|
|
46
|
+
## Install
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# With uv (recommended — installs as an isolated tool)
|
|
50
|
+
uv tool install clawd-buddy
|
|
51
|
+
|
|
52
|
+
# With pipx
|
|
53
|
+
pipx install clawd-buddy
|
|
54
|
+
|
|
55
|
+
# With pip (into current environment)
|
|
56
|
+
pip install clawd-buddy
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### From source
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
git clone https://github.com/ramymagdy-rm/clawd-buddy.git
|
|
63
|
+
cd clawd-buddy
|
|
64
|
+
uv tool install --from . clawd-buddy
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Quick start
|
|
68
|
+
|
|
69
|
+
### 1. Launch the buddy
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
clawd-buddy
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The buddy appears on your taskbar, centered at the bottom of the screen. It runs until you close it.
|
|
76
|
+
|
|
77
|
+
### 2. Run at startup (optional)
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Enable — buddy starts automatically when you log into Windows
|
|
81
|
+
clawd-buddy --startup
|
|
82
|
+
|
|
83
|
+
# Disable — remove from startup
|
|
84
|
+
clawd-buddy --no-startup
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
This places a lightweight launcher in your Windows Startup folder (`shell:startup`). No console window appears — the buddy runs silently in the background.
|
|
88
|
+
|
|
89
|
+
### 3. Wire up Claude Code hooks
|
|
90
|
+
|
|
91
|
+
Add to your **global** Claude Code settings (`~/.claude/settings.json`) so every session triggers the buddy:
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"hooks": {
|
|
96
|
+
"Stop": [
|
|
97
|
+
{
|
|
98
|
+
"hooks": [
|
|
99
|
+
{
|
|
100
|
+
"type": "command",
|
|
101
|
+
"command": "clawd-buddy --send done",
|
|
102
|
+
"timeout": 5000
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"PermissionRequest": [
|
|
108
|
+
{
|
|
109
|
+
"hooks": [
|
|
110
|
+
{
|
|
111
|
+
"type": "command",
|
|
112
|
+
"command": "clawd-buddy --wave",
|
|
113
|
+
"timeout": 5000
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
> **Note:** If you already have other hooks in your `settings.json`, merge the `Stop` and `PermissionRequest` entries into the existing `hooks` object.
|
|
123
|
+
|
|
124
|
+
### 4. Done
|
|
125
|
+
|
|
126
|
+
Start a Claude Code session anywhere. When the assistant finishes or needs your attention, the buddy reacts.
|
|
127
|
+
|
|
128
|
+
## CLI reference
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
clawd-buddy Start buddy on taskbar
|
|
132
|
+
clawd-buddy --test Start with a celebration animation
|
|
133
|
+
clawd-buddy --send MSG Signal a running buddy to celebrate
|
|
134
|
+
clawd-buddy --wave Signal a running buddy to wave (needs attention)
|
|
135
|
+
clawd-buddy --startup Enable run at Windows startup
|
|
136
|
+
clawd-buddy --no-startup Disable run at Windows startup
|
|
137
|
+
clawd-buddy --port PORT Use a custom TCP port (default: 44556)
|
|
138
|
+
clawd-buddy --no-topmost Don't keep the window always-on-top
|
|
139
|
+
clawd-buddy --help Show help
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Controls
|
|
143
|
+
|
|
144
|
+
| Input | Action |
|
|
145
|
+
| --- | --- |
|
|
146
|
+
| **Drag** | Click anywhere on the buddy and drag to reposition |
|
|
147
|
+
| **Space** | Trigger a test celebration |
|
|
148
|
+
| **Escape** | Quit the buddy |
|
|
149
|
+
| **Tray icon** | Right-click the system tray icon for a menu |
|
|
150
|
+
|
|
151
|
+
## How it works
|
|
152
|
+
|
|
153
|
+
### Architecture
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
Claude Code Clawd Buddy
|
|
157
|
+
----------- -----------
|
|
158
|
+
hooks/Stop ──> clawd-buddy --send ──> TCP:44556 ──> celebrate animation
|
|
159
|
+
hooks/PermissionRequest ──> clawd-buddy --wave ──> TCP:44556 ──> wave animation
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
1. **Claude Code hooks** fire shell commands when events happen (response done, permission needed).
|
|
163
|
+
2. The `clawd-buddy --send` / `--wave` CLI connects to `127.0.0.1:44556` and sends a JSON action.
|
|
164
|
+
3. The running buddy process receives the signal and plays the animation.
|
|
165
|
+
|
|
166
|
+
### Signal protocol
|
|
167
|
+
|
|
168
|
+
The buddy listens on a TCP socket (default port `44556`). Send a JSON payload to trigger actions:
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{"action": "celebrate"}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{"action": "wave"}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
You can send signals from any language:
|
|
179
|
+
|
|
180
|
+
```python
|
|
181
|
+
import socket, json
|
|
182
|
+
s = socket.socket()
|
|
183
|
+
s.connect(("127.0.0.1", 44556))
|
|
184
|
+
s.sendall(json.dumps({"action": "celebrate"}).encode())
|
|
185
|
+
s.close()
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
echo '{"action": "wave"}' | nc localhost 44556
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Single instance
|
|
193
|
+
|
|
194
|
+
Only one buddy can run at a time. If you launch `clawd-buddy` while one is already running, it sends a signal to the existing instance and exits.
|
|
195
|
+
|
|
196
|
+
### System tray
|
|
197
|
+
|
|
198
|
+
The buddy adds a system tray icon with a right-click menu:
|
|
199
|
+
|
|
200
|
+
- **Test Celebration** — trigger the celebrate animation
|
|
201
|
+
- **Quit** — close the buddy
|
|
202
|
+
|
|
203
|
+
### Windows startup
|
|
204
|
+
|
|
205
|
+
`clawd-buddy --startup` places a small VBS launcher in your Windows Startup folder:
|
|
206
|
+
|
|
207
|
+
```text
|
|
208
|
+
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\clawd-buddy-startup.vbs
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
This script starts the buddy with a hidden console window. To remove it, run `clawd-buddy --no-startup` or delete the file manually.
|
|
212
|
+
|
|
213
|
+
## Animations
|
|
214
|
+
|
|
215
|
+
### Idle
|
|
216
|
+
|
|
217
|
+
- Gentle vertical bobbing (sine wave)
|
|
218
|
+
- Periodic blinking (every ~3.5 seconds)
|
|
219
|
+
- Pupils wander slowly
|
|
220
|
+
- Small mouth line with subtle movement
|
|
221
|
+
- Arms sway gently at sides
|
|
222
|
+
|
|
223
|
+
### Celebrate (on `Stop`)
|
|
224
|
+
|
|
225
|
+
- Fast bouncing
|
|
226
|
+
- Happy arc eyes (^ ^)
|
|
227
|
+
- Wide smile
|
|
228
|
+
- Both arms waving up
|
|
229
|
+
- Legs kicking
|
|
230
|
+
- Confetti burst (40 particles with gravity and drag)
|
|
231
|
+
- Duration: 3.5 seconds
|
|
232
|
+
|
|
233
|
+
### Wave (on `PermissionRequest`)
|
|
234
|
+
|
|
235
|
+
- Medium bobbing
|
|
236
|
+
- Wide alert eyes (large pupils, staring)
|
|
237
|
+
- Surprised "o" mouth
|
|
238
|
+
- Right arm waving high
|
|
239
|
+
- Pulsing floating **!** indicator above head
|
|
240
|
+
- Duration: 5 seconds
|
|
241
|
+
|
|
242
|
+
## Configuration
|
|
243
|
+
|
|
244
|
+
### Custom port
|
|
245
|
+
|
|
246
|
+
If port `44556` is taken, use a different one:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
clawd-buddy --port 55000
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Update your hooks to match:
|
|
253
|
+
|
|
254
|
+
```json
|
|
255
|
+
"command": "clawd-buddy --send done --port 55000"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Disable always-on-top
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
clawd-buddy --no-topmost
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Troubleshooting
|
|
265
|
+
|
|
266
|
+
### Buddy doesn't appear
|
|
267
|
+
|
|
268
|
+
- **Windows only**: Clawd Buddy uses Windows-specific APIs (`user32`, `shell32`) for transparency and taskbar detection. It does not work on macOS or Linux.
|
|
269
|
+
- Make sure no other process is using port `44556`: `netstat -ano | findstr 44556`
|
|
270
|
+
|
|
271
|
+
### Hook doesn't trigger the buddy
|
|
272
|
+
|
|
273
|
+
- Make sure the buddy is running (`clawd-buddy` in a terminal or via `--startup`).
|
|
274
|
+
- Test manually: `clawd-buddy --send test` — if this says "No buddy on port 44556", the buddy isn't running.
|
|
275
|
+
- Check that `clawd-buddy` is on your PATH: `where clawd-buddy`
|
|
276
|
+
|
|
277
|
+
### Multiple buddies / port conflict
|
|
278
|
+
|
|
279
|
+
- The buddy uses a lock socket on port `44557` (main port + 1) to prevent duplicates.
|
|
280
|
+
- If a stale lock is stuck, kill the process and restart: `taskkill /F /IM clawd-buddy.exe`
|
|
281
|
+
|
|
282
|
+
### Startup not working
|
|
283
|
+
|
|
284
|
+
- Verify the VBS file exists: `dir "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\clawd-buddy*"`
|
|
285
|
+
- Re-run `clawd-buddy --startup` to regenerate it.
|
|
286
|
+
- Make sure `clawd-buddy.exe` is on your PATH: `where clawd-buddy`
|
|
287
|
+
|
|
288
|
+
## Disclaimer
|
|
289
|
+
|
|
290
|
+
Clawd Buddy is an independent open-source project. It is not affiliated with, endorsed by, or sponsored by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic, PBC.
|
|
291
|
+
|
|
292
|
+
## License
|
|
293
|
+
|
|
294
|
+
[MIT](LICENSE)
|