✓ Verified 💻 Development ✓ Enhanced Data

Freedcamp Agent Skill

Manage Freedcamp tasks, projects, groups, comments, notifications, and task lists via HMAC-SHA1 API

Rating
5 (264 reviews)
Downloads
670 downloads
Version
1.0.0

Overview

Manage Freedcamp tasks, projects, groups, comments, notifications, and task lists via HMAC-SHA1 API credentials.

Complete Documentation

View Source →

Freedcamp

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).

  • Script: {baseDir}/scripts/freedcamp.mjs
  • Auth: FREEDCAMP_API_KEY + FREEDCAMP_API_SECRET
  • Output: JSON only (stdout), suitable for agents and automation

Setup

  • Obtain your Freedcamp API key and secret from your Freedcamp account settings.
  • Provide both values as environment variables.

Common injection patterns

  • Shell env (local testing):
text
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.

Configure via OpenClaw CLI (recommended)

bash
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:

bash
openclaw config get skills.entries.freedcamp

Remove stored credentials:

bash
openclaw config unset skills.entries.freedcamp.apiKey
openclaw config unset skills.entries.freedcamp.env.FREEDCAMP_API_SECRET

First calls (sanity + discovery)

  • Who am I / session info:
node {baseDir}/scripts/freedcamp.mjs me
  • List all groups, projects, and apps:
node {baseDir}/scripts/freedcamp.mjs groups-projects

ID resolution

When the user provides project names, resolve to IDs using:

  • groups-projects returns all groups with their projects, including project IDs and names
  • Use the exact project_name from the output for other commands
Avoid guessing a project ID when multiple matches exist.

Core: tasks

List tasks in a project

node {baseDir}/scripts/freedcamp.mjs tasks --project --all

List tasks with filters

node {baseDir}/scripts/freedcamp.mjs tasks --project --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 (max 200 per page, default 200)
  • --offset for pagination

Get a single task (with comments and files)

node {baseDir}/scripts/freedcamp.mjs task

Create a task

node {baseDir}/scripts/freedcamp.mjs create-task --project --title "Task title"

With optional description and task list:

node {baseDir}/scripts/freedcamp.mjs create-task --project --title "Task title" --description "Details here" --task_group

Update a task

node {baseDir}/scripts/freedcamp.mjs update-task --title "New title" --status in_progress

Status values: not_started (0), completed (1), in_progress (2), invalid (3), review (4)

Create a task by project name

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.

Task lists (groups)

  • List task lists for a project:
node {baseDir}/scripts/freedcamp.mjs task-lists --project
  • Specify app (default is Tasks / app_id 2):
node {baseDir}/scripts/freedcamp.mjs task-lists --project --app_id 2

Comments

  • Add a comment to any item:
node {baseDir}/scripts/freedcamp.mjs comment --app_name "Tasks" --text "My comment"

Comments are automatically wrapped in

tags. You can also pass raw HTML:

node {baseDir}/scripts/freedcamp.mjs comment --app_name "Tasks" --html "

Bold text

"

App names for comments

When adding comments, the --app_name must be one of: Tasks, Discussions, Milestones, Time, Files, Issue Tracker, Wikis, CRM, Passwords, Calendar, Planner, Translations

Notifications

  • Fetch recent notifications (last 60 days):
node {baseDir}/scripts/freedcamp.mjs notifications
  • Mark a notification as read:
node {baseDir}/scripts/freedcamp.mjs mark-read

Data model reference

Task statuses

NameValueCLI flag
Not Started0not_started
Completed1completed
In Progress2in_progress
Invalid3invalid
Review4review

Priorities

NameValue
None0
Low1
Medium2
High3

App types

IDNameKey
2TasksTODOS
3DiscussionsDISCUSSIONS
4MilestonesMILESTONES
5TimeTIME
6FilesFILES
13Issue TrackerBUGTRACKER
14WikisWIKI
16CRMCRM
17PasswordsPASSMAN
19CalendarCALENDAR
47PlannerPLANNER
48TranslationsTRANSLATIONS

Important notes

  • Comments must contain HTML. Plain text passed via --text is auto-wrapped in

    tags.

  • Task pagination max is 200 per request; use --offset for more.
  • Session is cached locally and auto-refreshes on 401 errors.
  • The --all flag on tasks auto-paginates to fetch every result.

Out of scope

  • Invoices and Invoices Plus APIs are not exposed.
  • "Bot personality" is not embedded; configure behavior in your agent prompt.

Installation

Terminal bash

openclaw install freedcamp-agent-skill
    
Copied!

💻Code Examples

example.sh
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"

Tags

#productivity_and-tasks #api

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author agrublev
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install freedcamp-agent-skill