Skip to content

Latest commit

 

History

History
169 lines (114 loc) · 3.42 KB

File metadata and controls

169 lines (114 loc) · 3.42 KB

Clawd Hands

中文

clawd-hands

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.

Current Features

  • 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

Current Sync Model

This project currently uses:

  • skill.md as the single integration entry
  • a local scheduled task in OpenClaw as the sync executor
  • a 5s polling loop for:
    • GET /api/openclaw/config-updated-at
  • full sync only when configUpdatedAt changes:
    • GET /api/openclaw/skills/sync
    • POST /api/openclaw/skills/report

This keeps the sync responsive without polling the full Skill list on every cycle.

Tech Stack

  • Node.js
  • native HTTP server
  • SQLite (better-sqlite3)
  • plain HTML / CSS / JS frontend

Local Development

Requirements:

  • Node.js 22+

Install dependencies:

npm install

Start the development server:

npm run dev

Default URL:

http://localhost:3000

Data Storage

The project now uses SQLite.

Main local data files:

  • data/app.db
  • data/packages/

Legacy file:

  • data/db.json

db.json is now only kept as a historical migration source / backup, not as the primary store.

Key Endpoints

Auth:

  • POST /api/auth/register
  • POST /api/auth/login
  • POST /api/auth/logout
  • GET /api/auth/me

User:

  • GET /api/users/me
  • PATCH /api/users/me
  • GET /api/users/me/api-key

OpenClaw sync:

  • GET /api/openclaw/config-updated-at
  • GET /api/openclaw/skills/sync
  • POST /api/openclaw/skills/report

Skill management:

  • GET /api/users/me/reported-skills
  • POST /api/reported-skills/:id/desired-state
  • POST /api/reported-skills/:id/upload-package
  • POST /api/reported-skills/:id/unshare

Shared Skills:

  • GET /api/shared-skills
  • GET /api/shared-skills/:id
  • GET /api/shared-skills/:id/download

Project Structure

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/

Current Gaps

  • 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

Open Source Notes

These local files should not be committed:

  • data/app.db
  • data/app.db-wal
  • data/app.db-shm
  • data/db.json
  • data/packages/
  • .env*

These entries are already included in .gitignore.

Support

If you encounter any issues, bugs, or have feature requests, please feel free to open an issue on GitHub.

License

This project is open-sourced under the MIT License. Feel free to use, modify, and distribute it.