Install
openclaw skills install context-syncUse this skill when the user wants to upload files to Aicoo, sync context, add knowledge to their agent, update what their agent knows, push local files to Aicoo, search or read existing notes, browse folders, or accumulate context. Triggers on: 'sync files', 'upload to Aicoo', 'add context', 'update my agent', 'search my notes', 'what does my agent know', 'list folders', 'browse workspace', or wanting their shared agent to know about specific files, projects, or topics.
openclaw skills install context-syncYou help users sync local files, notes, and context into Aicoo so their shared agent has the right knowledge to represent them.
AICOO_API_KEY environment variable must be sethttps://www.aicoo.io/api/v1/api/v1/os/* for workspace-native operations (notes/folders/snapshots/memory/todos/network/share)/api/v1/tools only for non-OS tools (calendar/email/web/messaging/quality/MCP)curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/status" | jq .
# folders
curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/folders" | jq .
# notes in folder
curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/notes?folderId=5&limit=20" | jq .
# note content
curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/notes/42" | jq .
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes/search" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"project roadmap"}' | jq .
# deterministic grep (regex/literal + context lines)
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes/grep" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"pattern":"roadmap|timeline","mode":"regex","caseSensitive":false,"contextBefore":3,"contextAfter":3}' | jq .
# create
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Project Roadmap Q2","content":"# Q2 Roadmap\n\n## Goals\n- Launch v2 API"}' | jq .
# snapshot before edit
curl -s -X POST "https://www.aicoo.io/api/v1/os/snapshots/42" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"label":"Pre-edit"}' | jq .
# edit
curl -s -X PATCH "https://www.aicoo.io/api/v1/os/notes/42" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content":"# Updated Roadmap\n\n..."}' | jq .
# move (mv)
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes/42/move" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"folderName":"Technical"}' | jq .
# copy (cp)
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes/42/copy" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"folderName":"Archive"}' | jq .
curl -s -X POST "https://www.aicoo.io/api/v1/accumulate" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"files": [
{"path":"Technical/architecture.md","content":"# Architecture\n\n..."},
{"path":"General/team-info.md","content":"# Team\n\n..."}
]
}' | jq .
# list (includes both owned folders and shared-with-me folders)
curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/folders" | jq .
# create
curl -s -X POST "https://www.aicoo.io/api/v1/os/folders" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Investor Materials"}' | jq .
Shared folders appear with shared: true and role (viewer/writer/editor/admin). They use the same folderId for all operations — list notes, search, create, read, edit.
# list notes in a shared folder (same as owned)
curl -s -H "Authorization: Bearer $AICOO_API_KEY" \
"https://www.aicoo.io/api/v1/os/notes?folderId=2213" | jq .
# create note in shared folder (requires editor/admin role)
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title":"Shared Doc","content":"# ...","folderId":2213}' | jq .
curl -s -X POST "https://www.aicoo.io/api/v1/accumulate" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"delete":[{"path":"Technical/old-doc.md"}]}' | jq .
memory/self/)Use /accumulate to manage:
memory/self/COO.mdmemory/self/USER.mdmemory/self/POLICY.mdlinks/)To customize per-link behavior, edit link notes in links/:
# find link note
curl -s -X POST "https://www.aicoo.io/api/v1/os/notes/search" \
-H "Authorization: Bearer $AICOO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"For-Investors"}' | jq .
Then patch that note via PATCH /api/v1/os/notes/{id}.
| Scenario | Endpoint |
|---|---|
| Browse folders (owned + shared) | GET /os/folders |
| List notes in folder | GET /os/notes?folderId=... |
| Search notes (spans shared folders) | POST /os/notes/search |
| Grep notes (spans shared folders) | POST /os/notes/grep |
| Read note | GET /os/notes/{id} |
| Create note (in owned or shared folder) | POST /os/notes |
| Edit note | PATCH /os/notes/{id} |
| Move note | POST /os/notes/{id}/move |
| Copy note | POST /os/notes/{id}/copy |
| Snapshot save/list/restore | /os/snapshots/{noteId} + /restore |
| Bulk upload/delete | POST /accumulate |
Shared folders appear in GET /os/folders alongside owned folders. They have a real folderId (the owner's folder ID) and are addressed identically to owned folders across all endpoints.
folderId in the body (requires editor/admin role)/accumulate for multi-file sync.