Manage Freedcamp tasks, projects, groups, comments, notifications, and task lists via HMAC-SHA1 API credentials.
This skill provides a dependency-free Node.js CLI that calls the Freedcamp REST API (v1) using HMAC-SHA1 secured credentials (API Key + API Secret).
{baseDir}/scripts/freedcamp.mjsFREEDCAMP_API_KEY + FREEDCAMP_API_SECRETShell env (local testing):
export FREEDCAMP_API_KEY="..."
export FREEDCAMP_API_SECRET="..."
OpenClaw config (recommended): set skills.entries.freedcamp.apiKey and skills.entries.freedcamp.env.FREEDCAMP_API_SECRET so secrets are injected only for the agent run.
openclaw config set skills.entries.freedcamp.enabled true
openclaw config set skills.entries.freedcamp.apiKey "YOUR_API_KEY"
openclaw config set skills.entries.freedcamp.env.FREEDCAMP_API_SECRET "YOUR_API_SECRET"
Verify what is stored:
openclaw config get skills.entries.freedcamp
Remove stored credentials:
openclaw config unset skills.entries.freedcamp.apiKey
openclaw config unset skills.entries.freedcamp.env.FREEDCAMP_API_SECRET
Who am I / session info:
node {baseDir}/scripts/freedcamp.mjs me
List all groups, projects, and apps:
node {baseDir}/scripts/freedcamp.mjs groups-projects
When the user provides project names, resolve to IDs using:
groups-projects returns all groups with their projects, including project IDs and namesproject_name from the output for other commandsAvoid guessing a project ID when multiple matches exist.
node {baseDir}/scripts/freedcamp.mjs tasks --project <project_id> --all
node {baseDir}/scripts/freedcamp.mjs tasks --project <project_id> --status in_progress,not_started --assigned_to 2,-1
Useful filters:
--status comma-separated: not_started, completed, in_progress, invalid, review--assigned_to comma-separated user IDs. 0 = unassigned, -1 = everyone--due_from YYYY-MM-DD / --due_to YYYY-MM-DD--created_from YYYY-MM-DD / --created_to YYYY-MM-DD--list_status active|archived|all--with_archived true to include tasks from archived projects--limit <n> (max 200 per page, default 200)--offset <n> for paginationnode {baseDir}/scripts/freedcamp.mjs task <task_id>
node {baseDir}/scripts/freedcamp.mjs create-task --project <project_id> --title "Task title"
With optional description and task list:
node {baseDir}/scripts/freedcamp.mjs create-task --project <project_id> --title "Task title" --description "Details here" --task_group <task_group_id>
node {baseDir}/scripts/freedcamp.mjs update-task <task_id> --title "New title" --status in_progress
Status values: not_started (0), completed (1), in_progress (2), invalid (3), review (4)
node {baseDir}/scripts/freedcamp.mjs create-task-by-name --project_name "My Project" --app_name "Tasks" --title "New task"
Resolves the project name to an ID using session data. Currently supports the Tasks app.
List task lists for a project:
node {baseDir}/scripts/freedcamp.mjs task-lists --project <project_id>
Specify app (default is Tasks / app_id 2):
node {baseDir}/scripts/freedcamp.mjs task-lists --project <project_id> --app_id 2
Add a comment to any item:
node {baseDir}/scripts/freedcamp.mjs comment <item_id> --app_name "Tasks" --text "My comment"
Comments are automatically wrapped in <p> tags. You can also pass raw HTML:
node {baseDir}/scripts/freedcamp.mjs comment <item_id> --app_name "Tasks" --html "<p>Bold <b>text</b></p>"
When adding comments, the --app_name must be one of:
Tasks, Discussions, Milestones, Time, Files, Issue Tracker, Wikis, CRM, Passwords, Calendar, Planner, Translations
Fetch recent notifications (last 60 days):
node {baseDir}/scripts/freedcamp.mjs notifications
Mark a notification as read:
node {baseDir}/scripts/freedcamp.mjs mark-read <notification_uid>
| Name | Value | CLI flag |
|---|---|---|
| Not Started | 0 | not_started |
| Completed | 1 | completed |
| In Progress | 2 | in_progress |
| Invalid | 3 | invalid |
| Review | 4 | review |
| Name | Value |
|---|---|
| None | 0 |
| Low | 1 |
| Medium | 2 |
| High | 3 |
| ID | Name | Key |
|---|---|---|
| 2 | Tasks | TODOS |
| 3 | Discussions | DISCUSSIONS |
| 4 | Milestones | MILESTONES |
| 5 | Time | TIME |
| 6 | Files | FILES |
| 13 | Issue Tracker | BUGTRACKER |
| 14 | Wikis | WIKI |
| 16 | CRM | CRM |
| 17 | Passwords | PASSMAN |
| 19 | Calendar | CALENDAR |
| 47 | Planner | PLANNER |
| 48 | Translations | TRANSLATIONS |
--text is auto-wrapped in <p> tags.--offset for more.--all flag on tasks auto-paginates to fetch every result.