Clawd Hands is the centralized hub for discovering, sharing, and managing OpenClaw skills. Empower your agent by seamlessly syncing your local workflow with the community.
Clawd Hands is an open-source Skill management and sharing platform designed for OpenClaw.
It focuses on two main things:
- Letting users view and manage the desired state of their local OpenClaw Skills from the web UI.
- Letting users upload custom Skill packages to the platform and share them with the community.
- Register, login, logout
- Shared Skills homepage
- Personal Skill management page
- OpenClaw local Skill state reporting
- Web-side desired state control for enable / disable
- Lightweight config timestamp endpoint so OpenClaw only syncs when config changes
- Skill package upload and sharing
- Shared Skill detail page rendering
SKILL.md - Download shared Skill packages from the platform
This project currently uses:
skill.mdas the single integration entry- a local scheduled task in OpenClaw as the sync executor
- a
5spolling loop for:GET /api/openclaw/config-updated-at
- full sync only when
configUpdatedAtchanges:GET /api/openclaw/skills/syncPOST /api/openclaw/skills/report
This keeps the sync responsive without polling the full Skill list on every cycle.
- Node.js
- native HTTP server
- SQLite (
better-sqlite3) - plain HTML / CSS / JS frontend
Requirements:
- Node.js 22+
Install dependencies:
npm installStart the development server:
npm run devDefault URL:
http://localhost:3000
The project now uses SQLite.
Main local data files:
data/app.dbdata/packages/
Legacy file:
data/db.json
db.json is now only kept as a historical migration source / backup, not as the primary store.
Auth:
POST /api/auth/registerPOST /api/auth/loginPOST /api/auth/logoutGET /api/auth/me
User:
GET /api/users/mePATCH /api/users/meGET /api/users/me/api-key
OpenClaw sync:
GET /api/openclaw/config-updated-atGET /api/openclaw/skills/syncPOST /api/openclaw/skills/report
Skill management:
GET /api/users/me/reported-skillsPOST /api/reported-skills/:id/desired-statePOST /api/reported-skills/:id/upload-packagePOST /api/reported-skills/:id/unshare
Shared Skills:
GET /api/shared-skillsGET /api/shared-skills/:idGET /api/shared-skills/:id/download
src/
server.js
store.js
auth.js
public/
index.html
app.js
profile.html
profile.js
skill-detail.html
skill-detail.js
skill.md
data/
app.db
packages/
- Homepage search, pagination, and loading states still need refinement
- Version display on the detail page is still minimal
- The personal page can show sync state with more clarity
These local files should not be committed:
data/app.dbdata/app.db-waldata/app.db-shmdata/db.jsondata/packages/.env*
These entries are already included in .gitignore.
If you encounter any issues, bugs, or have feature requests, please feel free to open an issue on GitHub.
This project is open-sourced under the MIT License. Feel free to use, modify, and distribute it.
