ManageMe Skill

VerifiedSafe

Skill to manage ManageMe tasks, projects, and attachments through the OpenClaw API.

Sby Skills Guide Bot
ProductivityIntermediate
7/22/2026
Claude CodeCodexCursorWindsurfCopilot
#task-management#project-management#openclaw#api-integration#file-upload

Recommended for

Automated summary

This skill lets the assistant manage tasks, projects, statuses, and attachments in a ManageMe workspace through the OpenClaw API.

Strengths

  • Documents each endpoint (health, projects, tasks, resources) precisely with required headers and parameters
  • Includes clear guardrails: restrict calls to /api/oc/* routes, never expose secrets, and forbid shell placeholders
  • Covers multiple task update modes (complete, status change, compatibility update) and multipart uploads for large files

Limitations

  • Assumes MANAGEME_API_URL, MANAGEME_OPENCLAW_SECRET, and MANAGEME_WORKSPACE_ID environment variables are already configured
  • Does not describe error handling, rate limits, or authentication failures
  • Fully dependent on the availability of ManageMe's OpenClaw API
When to use it

Use when a user asks to create, list, complete, update, or attach files to ManageMe tasks or projects from an OpenClaw channel.

When not to use it

Do not use for operations on the web UI, authentication routes, or any routes outside ManageMe's OpenClaw API.

Security analysis

Safe
Quality score80/100

The skill is a straightforward REST API integration guide for a task manager. It explicitly restricts calls to /api/oc/* routes, forbids touching auth/UI/browser routes, sources credentials from environment variables, and warns against leaking secrets or using shell placeholders for base64 data. The only execution surface is a handful of curl/PowerShell upload examples, which are purposeful and non-destructive; there is no obfuscation, exfiltration to third parties, or destructive command.

Findings
  • •Uses curl with a secret header for file uploads, but only against the documented MANAGEME_API_URL /api/oc/* endpoints
  • •References secrets via environment variables rather than hardcoding them, and explicitly instructs never to expose secrets, headers, or stack traces
  • •Includes a PowerShell example that writes a payload file to disk; scoped to a project-local path but still writes files
How this analysis is made

Examples

Create a task
Create a ManageMe task titled 'Review Q3 report' with high priority due 2025-08-01 in the Marketing project.
List upcoming tasks
List all my ManageMe tasks that are due within the next 24 hours.
Attach a recording
Upload ./recording.m4a as an attachment to task abc123 in ManageMe.

name: manageme description: ManageMe assistant skill for workspace tasks, projects, statuses, and attachments through the OpenClaw API.

ManageMe Skill

Use this skill when the user asks to create, list, complete, update, or attach resources to ManageMe tasks or projects from an OpenClaw channel.

Runtime Configuration

Required environment variables:

  • MANAGEME_API_URL example: http://localhost:3000
  • MANAGEME_OPENCLAW_SECRET
  • MANAGEME_WORKSPACE_ID

Every request must include:

  • Header: x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
  • Query: ?w={MANAGEME_WORKSPACE_ID}

Rules

  • Only call MANAGEME_API_URL + /api/oc/* endpoints.
  • Do not call browser routes, auth routes, workspace UI routes, or non-OpenClaw API routes.
  • Keep user replies concise and operational.
  • Never expose secrets, raw headers, stack traces, or internal payload dumps.
  • If a file is provided, upload it through /api/oc/resource before confirming.
  • Always include ?w={MANAGEME_WORKSPACE_ID} on every OpenClaw API call.
  • For large files, prefer multipart/form-data to avoid shell argument size limits.
  • Never send shell placeholders in JSON (example: "base64Data": "$(cat file.txt)"); base64Data must contain the actual base64 string.

Endpoints

Health

GET {MANAGEME_API_URL}/api/oc/ping?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}

List Projects

GET {MANAGEME_API_URL}/api/oc/projects?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}

Create Project

POST {MANAGEME_API_URL}/api/oc/project?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
Content-Type: application/json

{ "name": "Project name" }

Create Task

POST {MANAGEME_API_URL}/api/oc/task?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
Content-Type: application/json

{
  "title": "Task title",
  "description": "Optional notes",
  "dueDate": "ISO-8601 date string",
  "priority": "low|medium|high",
  "projectId": "optional project id",
  "assigneeId": "optional member id",
  "sourceChannel": "discord|telegram|slack|whatsapp|openclaw"
}

Use name as a fallback alias for title only when needed. If neither is present, ask for the task title.

List Tasks

GET {MANAGEME_API_URL}/api/oc/tasks?w={MANAGEME_WORKSPACE_ID}&status=all
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}

Optional query parameters:

  • status=todo|in_progress|done|all
  • projectId=<id>
  • dueWithin=<Nh> example: 24h

Complete Task

PATCH {MANAGEME_API_URL}/api/oc/task/{taskId}/complete?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}

Update Task Status

PATCH {MANAGEME_API_URL}/api/oc/task/{taskId}/status?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
Content-Type: application/json

{ "status": "todo|in_progress|done" }

Update Task (Compatibility)

Use this when your client updates task fields via PATCH /task instead of path params.

PATCH {MANAGEME_API_URL}/api/oc/task?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
Content-Type: application/json

{
  "taskId": "task_id_here",
  "description": "Updated notes",
  "status": "todo|in_progress|done"
}

Accepted task id aliases: taskId, task_id, id

Upload Resource

Recommended for large files (multipart):

curl -X POST "{MANAGEME_API_URL}/api/oc/resource?w={MANAGEME_WORKSPACE_ID}" \
  -H "x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}" \
  -F "file=@./recording.m4a" \
  -F "taskId=task_id_here" \
  -F "transcription=Optional transcript"

JSON base64 payload:

POST {MANAGEME_API_URL}/api/oc/resource?w={MANAGEME_WORKSPACE_ID}
x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}
Content-Type: application/json

{
  "fileName": "document.pdf",
  "mimeType": "application/pdf",
  "base64Data": "base64 string or data URL",
  "taskId": "optional task id",
  "transcription": "optional extracted text"
}

Safe JSON workflow (no shell expansion at request time):

# Linux/macOS
base64 -w 0 ./document.pdf > ./document.b64.txt
cat > ./payload.json << 'JSON'
{
  "fileName": "document.pdf",
  "mimeType": "application/pdf",
  "base64Data": "REPLACE_WITH_REAL_BASE64_CONTENT",
  "taskId": "task_id_here"
}
JSON
# Windows PowerShell
$b64 = [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:/path/document.pdf"))
$payload = @{
  fileName = "document.pdf"
  mimeType = "application/pdf"
  base64Data = $b64
  taskId = "task_id_here"
}
$payload | ConvertTo-Json -Compress | Set-Content -Path "payload.json" -Encoding utf8
curl.exe -X POST "{MANAGEME_API_URL}/api/oc/resource?w={MANAGEME_WORKSPACE_ID}" -H "x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}" -H "Content-Type: application/json" --data-binary "@payload.json"

Raw file bytes (--data-binary) with metadata headers:

curl -X POST "{MANAGEME_API_URL}/api/oc/resource?w={MANAGEME_WORKSPACE_ID}" \
  -H "x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}" \
  -H "Content-Type: application/octet-stream" \
  -H "x-file-name: document.pdf" \
  -H "x-mime-type: application/pdf" \
  -H "x-task-id: task_id_here" \
  --data-binary @./document.pdf

Raw base64 text body is also accepted:

curl -X POST "{MANAGEME_API_URL}/api/oc/resource?w={MANAGEME_WORKSPACE_ID}" \
  -H "x-openclaw-secret: {MANAGEME_OPENCLAW_SECRET}" \
  -H "Content-Type: text/plain" \
  -H "x-file-name: document.pdf" \
  -H "x-mime-type: application/pdf" \
  --data-binary @./file.base64.txt

Accepted aliases (server normalizes these automatically):

  • File name: fileName, filename, file_name, name
  • MIME type: mimeType, mime_type, contentType
  • File bytes (base64): base64Data, base64, data, fileData
  • Task link: taskId, task_id, task
  • Transcript text: transcription, transcript, text

Upload constraints and behavior:

  • Max file size: 15 MB (returns 413 above limit)
  • Supported content types: application/json, multipart/form-data, text/plain (base64), application/octet-stream (raw file bytes)
  • mimeType can be omitted; server infers type from file extension
  • Base64 may be raw, data URL, URL-safe, and with/without padding
  • JSON/base64 parsing tolerates escaped newlines like \\n and \\r\\n
  • Unknown file types are stored as application/octet-stream

Transport selection guide:

  • Prefer multipart/form-data when available.
  • Use application/octet-stream when you can send raw file bytes with --data-binary @file.ext.
  • Use application/json only when the tool must send structured JSON.

File preview behavior in ManageMe UI:

  • Inline preview: images, PDF, audio, video, and text-like files
  • Non-previewable formats: show open/download links
  • Supported examples: png, jpg, jpeg, webp, gif, svg, pdf, txt, md, json, csv, mp3, wav, ogg, m4a, mp4, mov, webm, doc, docx, xls, xlsx, ppt, pptx, zip, rar, 7z

Manual web fallback (if channel upload fails):

  • Open the task details page in ManageMe web UI.
  • Use the Attachments plus button (Add File) to upload manually.
  • Confirm the file appears with Open and Download actions and preview where supported.

Canonical upload payload to prefer:

{
  "fileName": "voice-note.m4a",
  "base64Data": "data:audio/mp4;base64,AAA...",
  "taskId": "task_id_here",
  "transcription": "Optional transcript"
}

The API response includes:

{
  "success": true,
  "fileId": "...",
  "fileName": "...",
  "mimeType": "...",
  "attachedToTask": "task_id_or_null"
}

Task Resolution

When the user refers to a task by name:

  1. Fetch candidate tasks with /api/oc/tasks.
  2. Prefer exact title matches, then close fuzzy matches.
  3. If one match is clear, perform the action.
  4. If multiple matches are plausible, ask the user to choose.

Error Messages

  • 401: Your ManageMe connection needs re-authorizing. Please check your settings.
  • 404: That workspace or item was not found. Please check your ManageMe configuration.
  • 413: That file is too large for upload.
  • Other: Something went wrong reaching ManageMe. Try again in a moment.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/manageme-skill-mrwakfir/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/manageme-skill-mrwakfir' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/manageme-skill-mrwakfir/download' --output '.skill-downloads/manageme-skill-mrwakfir/SKILL.md.part' && mv '.skill-downloads/manageme-skill-mrwakfir/SKILL.md.part' '.skill-downloads/manageme-skill-mrwakfir/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && test -s '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/manageme' && cp -R '.skill-downloads/manageme-skill-mrwakfir' '.claude/skills/manageme'

Cursor
test -f '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && test -s '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/manageme' && cp -R '.skill-downloads/manageme-skill-mrwakfir' '.cursor/skills/manageme'

Codex
test -f '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && test -s '.skill-downloads/manageme-skill-mrwakfir/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/manageme' && cp -R '.skill-downloads/manageme-skill-mrwakfir' '.agents/skills/manageme'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/manageme-skill-mrwakfir'

openskills read 'manageme-skill-mrwakfir'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/manageme-skill-mrwakfir/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills