- Fix French accent characters (é/è/ê/ç/â/ô) across all 14 HAND.toml files - Fix German special characters (ä/ö/ü/ß) across all 14 HAND.toml files - Add category translations to all 6 i18n language blocks in all 14 hands - Enhance SKILL.md content for 9 hands with practical examples and workflows - Trim bloated SKILL.md files (apitester 1400→892, devops 1301→870) - Rewrite root README.md with accurate stats, complete hand/integration tables - Update hands/README.md with full 14-hand listing and i18n documentation
Hands
Hand definitions for LibreFang. Hands are the user-facing "apps" -- higher-level application bundles that package an agent with tools, settings, dashboard metrics, and dependency requirements.
"You have many hands helping you." -- Hands are how LibreFang users interact with specialized capabilities.
Structure
hands/
├── browser/
│ ├── HAND.toml # Hand definition
│ └── SKILL.md # Expert knowledge for the agent
├── trader/
│ ├── HAND.toml
│ └── SKILL.md
└── ...
HAND.toml Format
id = "hand-id" # Must match directory name
name = "Hand Name"
description = "What this hand does"
category = "productivity" # communication | content | data | development |
# devops | finance | productivity | research | social
icon = "🔧"
tools = ["tool1", "tool2"]
[routing]
aliases = ["activate phrases"]
weak_aliases = ["keyword hints"]
[[requires]] # External dependencies
key = "python3"
requirement_type = "binary"
check_value = "python3"
[[settings]] # User-configurable options
key = "headless"
setting_type = "toggle"
default = "true"
[agent] # The agent powering this hand
name = "hand-agent"
module = "builtin:chat"
system_prompt = """..."""
# Optional: i18n for name, description, category, and settings
# Supported languages: zh, ja, ko, es, fr, de
[i18n.zh]
name = "浏览器 Hand"
description = "自主网页浏览器"
category = "生产力"
[i18n.zh.settings.headless] # Per-setting label/description translation
label = "无头模式"
description = "在后台运行浏览器"
[dashboard] # Dashboard metrics
[[dashboard.metrics]]
label = "Tasks Completed"
memory_key = "metric_key"
format = "number"
Current Hands (14)
| Hand | Category | Description |
|---|---|---|
| analytics | data | Data analytics, visualization, dashboards, and automated reporting |
| apitester | development | API testing, endpoint discovery, load testing, and regression detection |
| browser | productivity | Web navigation, form filling, and multi-step web tasks |
| clip | content | Turns long-form video into short clips with captions and thumbnails |
| collector | data | Intelligence collection, change detection, and knowledge graphs |
| devops | development | CI/CD management, infrastructure monitoring, and incident response |
| lead | data | Lead generation, enrichment, scoring, and scheduled delivery |
| communication | LinkedIn content creation, networking, and engagement | |
| predictor | data | Signal collection, calibrated predictions, and accuracy tracking |
| communication | Subreddit monitoring, content posting, and engagement tracking | |
| researcher | productivity | Deep research, cross-referencing, fact-checking, and reports |
| strategist | productivity | Market research, competitive analysis, and strategic planning |
| trader | data | Market intelligence, multi-signal analysis, and risk management |
| communication | Twitter/X content creation, scheduling, and performance tracking |
Adding a New Hand
- Create
hands/<name>/HAND.tomlandSKILL.md(expert knowledge for the agent) - Ensure
idmatches the directory name - Run
python scripts/validate.py - Submit a PR
See CONTRIBUTING.md for the full guide.