技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 2 · 1.2k · 0 current installs · 0 all-time installs
⭐ 2
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :良性
Package:agrublev/freedcamp-agent-skill
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :良性
OpenClaw 评估
The skill is internally consistent with its stated purpose (a Freedcamp CLI using HMAC-SHA1 API credentials); required secrets, filesystem use, and network access align with the described functionality.
目的
Name/description match the code and SKILL.md: the scripts implement a Freedcamp CLI using FREEDCAMP_API_KEY and FREEDCAMP_API_SECRET and call only the Freedcamp API (https://freedcamp.com/api/v1). No unrelated services, binaries, or credentials are requested.
说明范围
SKILL.md instructs only Freedcamp-related workflows (session discovery, tasks, comments, notifications) and how to provide credentials. The runtime instructions and example commands match the implementation. The docs recommend storing credentials in OpenClaw config and show how to set/unset them.
安装机制
No install spec; this is effectively instruction-only plus included Node.js scripts. That minimizes install-time risk. The code is dependency-free and uses only Node standard libs. No external downloads or archive extraction are present.
证书
The only required environment variables are FREEDCAMP_API_KEY and FREEDCAMP_API_SECRET (primary credential declared as FREEDCAMP_API_KEY), which are exactly what a Freedcamp API client needs. No unrelated SECRET/TOKEN variables or extra credentials are requested. The scripts read these env vars and nothing else sensitive.
持久
The skill caches session data to a file in the user's home (~/.openclaw/skills/freedcamp-session.json by default). This is expected for session reuse but means session tokens are persisted on disk and should be protected. always is false and disable-model-invocation is false (agent-autonomy is normal); the skill does not change other skills or system settings.
综合结论
This skill appears to do what it says: a dependency-free Freedcamp CLI that needs your Freedcamp API key and secret. Before installing, consider: 1) Protect your API_KEY and API_SECRET—the skill reads them from environment variables and will use them to act on your Freedcamp account. 2) The tool caches session tokens to ~/.openclaw/skills/freedcamp-session.json (or a path you set via FREEDCAMP_SESSION_PATH); treat that file as sensitive and re…
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Freedcamp Project Management」。简介:Manage Freedcamp tasks, projects, groups, comments, notifications, and task lis…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/agrublev/freedcamp-agent-skill/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: freedcamp
description: "Manage Freedcamp tasks, projects, groups, comments, notifications, and task lists via HMAC-SHA1 API credentials."
homepage: https://freedcamp.com
user-invocable: true
metadata: {"openclaw":{"requires":{"env":["FREEDCAMP_API_KEY","FREEDCAMP_API_SECRET"]},"primaryEnv":"FREEDCAMP_API_KEY","homepage":"https://freedcamp.com"}}
---
# 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
1. Obtain your Freedcamp API key and secret from your Freedcamp account settings.
2. Provide both values as environment variables.
### Common injection patterns
- Shell 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.
### 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 <project_id> --all`
### List tasks with filters
`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 pagination
### Get a single task (with comments and files)
`node {baseDir}/scripts/freedcamp.mjs task <task_id>`
### Create a task
`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>`
### Update a task
`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)
### 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 <project_id>`
- Specify app (default is Tasks / app_id 2):
`node {baseDir}/scripts/freedcamp.mjs task-lists --project <project_id> --app_id 2`
## Comments
- 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>"`
### 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 <notification_uid>`
## Data model reference
### Task statuses
| Name | Value | CLI flag |
|---|---|---|
| Not Started | 0 | `not_started` |
| Completed | 1 | `completed` |
| In Progress | 2 | `in_progress` |
| Invalid | 3 | `invalid` |
| Review | 4 | `review` |
### Priorities
| Name | Value |
|---|---|
| None | 0 |
| Low | 1 |
| Medium | 2 |
| High | 3 |
### App types
| 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 |
## Important notes
- Comments must contain HTML. Plain text passed via `--text` is auto-wrapped in `<p>` 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.