by ThinkOffApp
Your car as a chat-room agent: Raspberry Pi 5 + dashcam + local AI. CodeWatch's sibling for the garage.
# Add to your Claude Code skills
git clone https://github.com/ThinkOffApp/CarWatchCarWatch is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ThinkOffApp. Your car as a chat-room agent: Raspberry Pi 5 + dashcam + local AI. CodeWatch's sibling for the garage. It has 102 GitHub stars.
CarWatch's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/ThinkOffApp/CarWatch" and add it to your Claude Code skills directory (see the Installation section above).
CarWatch is primarily written in Python. It is open-source under ThinkOffApp on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh CarWatch against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.


Your car as a chat-room agent — fully offline. A Raspberry Pi 5 rides in the
car, runs a 35B-parameter model locally, joins your
GroupMind rooms as @gle (or whatever you name yours),
and messages you like any other agent: departures, arrivals, trip summaries,
and dashcam clips when something hits the car — with approvals and replies from
your phone or watch via CodeWatch. Open PRs land on the CodeWatch dashboard next to ClawWatch and WhereWatch.
Live and measured, on real hardware (Pi 5, 16 GB, ~300 €):
The build log with every dead end included lives in docs/plan.md.
Sibling of CodeWatch (agents on your wrist; source: codewatch-cli) and ClawWatch (health on your wrist; v2 launch video). This one watches the car. The rest of the family lives at thinkoff.io.
flowchart LR
subgraph car [In the car - Raspberry Pi 5]
MIC[USB mic] --> LISTEN[carwatch-listen<br/>VAD + whisper.cpp]
LISTEN --> BRAIN[llama.cpp server<br/>Qwen3.6-35B-A3B]
MANUAL[(Owner manual RAG<br/>745 pages, on SD)] --> BRAIN
STATE[selfstate<br/>temp / fan / net / model] --> BRAIN
OBD[carwatch-obd<br/>watches the OBD cable] --> AGENT
BRAIN --> AGENT[carwatch-agent<br/>the @gle room agent]
DASH[web dashboard :8088<br/>status / update / voice / wifi]
UPD[self-update<br/>hourly git pull] -.updates.-> car
REACH[dial-out tunnel<br/>reachable behind any NAT]
end
AGENT <-->|posts + mentions| GM[GroupMind rooms]
GM <--> PHONE[Your phone / watch<br/>CodeWatch]
DASH <-->|same wifi| PHONE
Local is the product; online is the enrichment. The car must be fully useful with zero connectivity, because cars live in garages, tunnels and countryside dead zones:
Rule of thumb: glanceable safety-relevant info never depends on the network; anything social or heavy degrades gracefully to "later".
A car keeps four palm-sized contact patches on the road, the only place it ever meets reality. One principle per wheel: assert only what you can sense, claim only what is verified, label anything interim loudly, and report failure plainly with no silver lining. Everything above those four patches is just suspension.
— @claudeMB, CarWatch dev log, after a day of learning all four the hard way
Honesty policy: a feature is only "proven" after it worked on the real car. "Built + tested" means the code runs end-to-end against a real or simulated counterpart but has not yet met the physical car.
| Feature | Status |
|---|---|
@gle room agent: mentions, grounded answers, presence heartbeat |
proven (running daily) |
| Owner's-manual RAG with page citations | proven |
| Phone dashboard served by the car (status, wifi, voice toggle, update button) | proven |
| Hands-free voice: continuous VAD listener → whisper → grounded answer → room | proven (real voice transcribed on-Pi) |
| Self-update from this repo (hourly timer + dashboard button) | proven |
| Dial-out reachability behind any NAT (cloudflared quick tunnel) | proven (reached over the open internet) |
| OBD engine reading over DoIP/ENET (RPM, coolant, speed, voltage) | built + tested against a protocol-accurate fake gateway (tests/fake_gateway.py); zero-touch daemon watches the cable and posts results by itself. Unverified against the real car — it will confirm or refute itself on the next drive |
| Dashcam clip pull (WOLFBOX G900, hisnet CGI API mapped) | probe done, pipeline not wired |
| MBUX dashboard render, mirror icon strip | planned |
git clone https://github.com/ThinkOffApp/CarWatch.git
cd CarWatch
./install.sh
Then put your credentials in /etc/carwatch/config.json (never in the repo —
see config.example.json) and:
sudo systemctl enable --now carwatch
After that the car keeps itself current: update.sh pulls this repo's main,
installs any new systemd units, and restarts services — on a timer, from the
dashboard button, or by hand:
curl -sSL https://raw.githubusercontent.com/ThinkOffApp/CarWatch/main/update.sh | bash
Copy config.example.json to /etc/carwatch/config.json:
api_base — your GroupMind server, e.g. https://groupmind.oneapi_key — the agent's API key (create one for the car; never reuse another
agent's key, never commit it)room — room slug the car posts tohandle — the car's display handle, e.g. @glehome_ssids — wifi networks that mean "parked at home"wolfbox — dashcam AP name/password and poll intervalThe WOLFBOX's HTTP API is undocumented; carwatch-probe discovers it:
python3 -m carwatch.wolfbox --probe
Connect the Pi to the dashcam's wifi AP first. The probe walks known
dashcam-firmware endpoint patterns and prints what answers, which fills in
wolfbox.py's TODOs with your camera's real paths.
AGPL-3.0, like ClawWatch. Copyright (C) 2026 ThinkOff / Petrus Pennanen.