{"id":"4bf3a3cf-6df1-4da8-a677-90f8282f8b65","entityType":"agent","slug":"clawhub-cellcog-project-management-cellcog","name":"Project Management","canonicalUrl":"https://www.xpersona.co/agent/clawhub-cellcog-project-management-cellcog","canonicalPath":"/agent/clawhub-cellcog-project-management-cellcog","generatedAt":"2026-10-09T23:50:38.727Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":null},"description":"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. Skill: Project Management Owner: cellcog Summary: AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. Tags: latest:1.0.15 Version history: v1.0.15 | 2026-08-24T02:04:25.870Z | user Content updated. v1.0.14 | 2026-08-24T01:49:08.543Z | user Content updated. v1.0.13 | 2026-08-03T06:09:09.942Z | us","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.2K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s176q1btpn094ats9b4f9hgfwx83knpk:project-management-cellcog","sourceUrl":"https://clawhub.ai/cellcog/project-management-cellcog","homepage":"https://clawhub.ai/cellcog/skills/project-management-cellcog","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/cellcog/project-management-cellcog","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/cellcog/skills/project-management-cellcog","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":67,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCo"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":null},"stars":null,"forks":null,"downloads":2244,"packageName":null,"latestVersion":"1.0.15","tractionLabel":"2.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T17:07:14.877Z","lastCrawledAt":"2026-10-09T17:07:14.877Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T17:07:14.877Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.15","createdAt":"2026-08-24T02:04:25.870Z","changelog":"Content updated.","fileCount":3,"zipByteSize":7447},{"version":"1.0.14","createdAt":"2026-08-24T01:49:08.543Z","changelog":"Content updated.","fileCount":3,"zipByteSize":7300},{"version":"1.0.13","createdAt":"2026-08-03T06:09:09.942Z","changelog":"Content updated.","fileCount":3,"zipByteSize":7089},{"version":"1.0.12","createdAt":"2026-08-02T22:05:59.855Z","changelog":"Display title updated.","fileCount":3,"zipByteSize":7115},{"version":"1.0.11","createdAt":"2026-07-22T15:57:51.220Z","changelog":"- Skill renamed from \"project-cog\" to \"project-management-cellcog\" for clarity. - Documentation updated throughout SKILL.md to use the new skill name. - Minor formatting and title text changes in documentation to emphasize project management use. - Removed redundant skill-card.md file.","fileCount":3,"zipByteSize":7201},{"version":"1.0.10","createdAt":"2026-04-14T17:32:54.140Z","changelog":"- Updated the skill description to clarify its focus on AI project management and polished feature details. - Revised the usage section to clarify agent-specific instructions, especially distinguishing OpenClaw from other agents. - Minor improvements and clarifications throughout SKILL.md for better guidance and readability.","fileCount":3,"zipByteSize":7133},{"version":"1.0.9","createdAt":"2026-04-13T01:01:21.979Z","changelog":"- Updated documentation in SKILL.md for improved clarity and consistency. - Added explicit agent provider initialization examples to usage instructions. - Refined skill description to clarify features and available workflows. - No code or interface changes; documentation only.","fileCount":2,"zipByteSize":5941},{"version":"1.0.8","createdAt":"2026-04-12T23:36:01.251Z","changelog":"project-cog v1.0.8 - Updated SKILL.md with improved usage instructions and guidance. - Added a \"How to Use\" section clarifying agent integration examples. - Emphasized referencing the main cellcog skill for detailed SDK documentation. - No code or API changes.","fileCount":2,"zipByteSize":5919}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s176q1btpn094ats9b4f9hgfwx83knpk:project-management-cellcog","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T23:50:38.724Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-cellcog-project-management-cellcog/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":null},"readme":"Skill: Project Management\n\nOwner: cellcog\n\nSummary: AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\n\nTags: latest:1.0.15\n\nVersion history:\n\nv1.0.15 | 2026-08-24T02:04:25.870Z | user\n\nContent updated.\n\nv1.0.14 | 2026-08-24T01:49:08.543Z | user\n\nContent updated.\n\nv1.0.13 | 2026-08-03T06:09:09.942Z | user\n\nContent updated.\n\nv1.0.12 | 2026-08-02T22:05:59.855Z | user\n\nDisplay title updated.\n\nv1.0.11 | 2026-07-22T15:57:51.220Z | auto\n\n- Skill renamed from \"project-cog\" to \"project-management-cellcog\" for clarity.\n- Documentation updated throughout SKILL.md to use the new skill name.\n- Minor formatting and title text changes in documentation to emphasize project management use.\n- Removed redundant skill-card.md file.\n\nv1.0.10 | 2026-04-14T17:32:54.140Z | auto\n\n- Updated the skill description to clarify its focus on AI project management and polished feature details.\n- Revised the usage section to clarify agent-specific instructions, especially distinguishing OpenClaw from other agents.\n- Minor improvements and clarifications throughout SKILL.md for better guidance and readability.\n\nv1.0.9 | 2026-04-13T01:01:21.979Z | auto\n\n- Updated documentation in SKILL.md for improved clarity and consistency.\n- Added explicit agent provider initialization examples to usage instructions.\n- Refined skill description to clarify features and available workflows.\n- No code or interface changes; documentation only.\n\nv1.0.8 | 2026-04-12T23:36:01.251Z | auto\n\nproject-cog v1.0.8\n\n- Updated SKILL.md with improved usage instructions and guidance.\n- Added a \"How to Use\" section clarifying agent integration examples.\n- Emphasized referencing the main cellcog skill for detailed SDK documentation.\n- No code or API changes.\n\nv1.0.7 | 2026-04-11T05:52:32.841Z | auto\n\n- Changed Quick Start instructions to use agent_provider=\"openclaw\" instead of agent_name=\"openclaw\" for CellCogClient initialization.\n- No other functional or documentation changes.\n\nv1.0.6 | 2026-04-11T02:58:45.113Z | auto\n\n- Added agent_name=\"openclaw\" to the CellCogClient example in the \"Quick Start\" section for clearer agent specification.  \n- No functional or API changes; documentation (SKILL.md) only.  \n- Improves clarity for users integrating with OpenClaw agent workflows.\n\nv1.0.5 | 2026-04-08T05:58:32.934Z | auto\n\nproject-cog 1.0.5\n\n- Major SKILL.md overhaul: rewritten and restructured documentation for clarity and usability.\n- Added clear explanations of CellCog Projects, usage modes (with chats or standalone), and project/document lifecycles.\n- Provided detailed, code-focused quickstart and practical workflow examples.\n- Clarified the distinction between project_id and context_tree_id in API calls.\n- Expanded information on document processing, context tree usage, and file type support.\n- Cleaned up and condensed the feature/usage list for streamlined onboarding.\n\nv1.0.4 | 2026-04-06T05:07:44.879Z | auto\n\nproject-cog v1.0.4\n\n- Refined SKILL.md for clarity and conciseness.\n- Improved explanation of usage modes (CellCog chats vs. standalone agent memory).\n- Simplified setup and prerequisites; points users to cellcog mothership skill for detailed SDK instructions.\n- Highlighted key features: persistent context, document upload, AI-generated context trees, and multi-agent access.\n- Added overview of related skills for ecosystem context.\n\nv1.0.3 | 2026-04-03T01:44:01.034Z | auto\n\n- Updated the Quick Start guide in SKILL.md to clarify usage of create_chat() for OpenClaw agents (using notify_session_key) versus other agents.\n- No code or functionality changes; only documentation updated.\n- Helps users distinguish agent-specific integration patterns when creating chats with project documents.\n\nv1.0.2 | 2026-04-03T00:08:21.601Z | auto\n\n- Expanded standalone usage: clarified that any agent (not just OpenClaw) can use CellCog's Context Trees.\n- Updated Chat usage example: simplified `create_chat()` parameters and noted it now blocks until done, returning full results.\n- Minor documentation clean‑ups and improved language for clarity.\n- No changes to code or functionality; documentation only.\n\nv1.0.1 | 2026-03-27T04:17:52.494Z | auto\n\n- Metadata in SKILL.md updated for clarity and standardization.\n- Added a homepage field with the CellCog website.\n- Improved structuring of requirements and environment fields under metadata.\n- No changes to Python API or usage instructions.\n\nv1.0.0 | 2026-03-26T06:47:20.527Z | auto\n\nCellCog Projects 1.0.0 — initial release for knowledge workspaces.\n\n- Create and manage AI-powered knowledge workspaces with project-based access.\n- Upload documents of various types; receive structured, hierarchical context tree summaries processed by CellCog's AI.\n- Retrieve signed URLs for document sharing.\n- Works standalone for any agent, or as context for CellCog chat agents.\n- Granular admin controls for managing projects and documents.\n- Supports polling for document processing and exports context trees in markdown for easy agent consumption.\n\nArchive index:\n\nArchive v1.0.15: 3 files, 7447 bytes\n\nFiles: skill-card.md (2381b), SKILL.md (16401b), _meta.json (146b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Choosing Mode & Tier\n\n**Use `chat_mode=\"agent\"` (defaults to the `\"flash\"` tier)** — project/document management operations are light tasks; flash is fast and economical. Pass `chat_tier=\"max\"` only when a chat will ALSO do heavy work (deep analysis over the project's documents, complex production). Agent Team (`chat_mode=\"team\"`) is reserved for deep research.\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\n**Claude Code, Cursor, Codex + 70 more agents:** `npx skills add cellcog/skills --skill cellcog`\n**OpenClaw:** `openclaw skills install @cellcog/cellcog`\n**CellCog plugin users:** run `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool)\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1787537065870\n}\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nAI project management powered by CellCog for knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval, and optional CellCog chat context.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[cellcog](https://clawhub.ai/user/cellcog)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to create and manage CellCog project workspaces, upload and process documents, read context tree summaries, and retrieve temporary signed URLs for collaboration or CellCog chat context.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Installing or using an unofficial CellCog package or skill source could expose the agent environment to unintended code or behavior.\n\nMitigation: Verify the official CellCog package or skill source before installation and consider using an isolated environment.\n\nRisk: Generated signed URLs can grant temporary unauthenticated access to documents.\n\nMitigation: Share signed URLs only with trusted recipients, use the shortest practical expiration, and avoid highly confidential documents unless that sharing is intended.\n\nRisk: Project document uploads, updates, deletions, and signed URL generation can affect workspace contents or access.\n\nMitigation: Confirm project and context tree IDs, required admin access, target files, and intended recipients before running those operations.\n\n## Reference(s):\n\n- [CellCog](https://cellcog.ai)\n- [ClawHub Project Management Skill](https://clawhub.ai/cellcog/skills/project-management-cellcog)\n- [CellCog Publisher Profile](https://clawhub.ai/user/cellcog)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration]\n\n**Output Format:** [Markdown with Python code examples and installation commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires python3, the CellCog package, and CELLCOG_API_KEY; generated signed URLs are time-limited and should be treated as temporary secrets.]\n\n## Skill Version(s):\n\n1.0.15 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.14: 3 files, 7300 bytes\n\nFiles: skill-card.md (1920b), SKILL.md (16384b), _meta.json (146b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Choosing Mode & Tier\n\n**Use `chat_mode=\"agent\"` (defaults to the `\"flash\"` tier)** — project/document management operations are light tasks; flash is fast and economical. Pass `chat_tier=\"max\"` only when a chat will ALSO do heavy work (deep analysis over the project's documents, complex production). Agent Team (`chat_mode=\"team\"`) is reserved for deep research.\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\n**Claude Code, Cursor, Codex + 70 more agents:** `npx skills add cellcog/skills --skill cellcog`\n**OpenClaw:** `clawhub install cellcog`\n**CellCog plugin users:** run `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool)\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1787536148543\n}\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nProject Management helps agents use CellCog knowledge workspaces for document upload, AI-processed context trees, and signed URL retrieval, either standalone or as CellCog chat context.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[cellcog](https://clawhub.ai/user/cellcog)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to create and manage CellCog projects, upload documents, inspect AI-generated context tree summaries, and retrieve signed document URLs for project workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Uploaded project files are processed in an external CellCog document workspace.\n\nMitigation: Upload only documents approved for CellCog processing and avoid sensitive material unless the workspace policy allows it.\n\nRisk: Signed document URLs can remain accessible until their configured expiration.\n\nMitigation: Use the shortest practical expiration and share signed URLs only with trusted recipients.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/cellcog/skills/project-management-cellcog)\n- [CellCog homepage](https://cellcog.ai)\n- [ClawHub publisher profile](https://clawhub.ai/user/cellcog)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, code, shell commands, configuration]\n\n**Output Format:** [Markdown instructions with Python code blocks, API method tables, and setup commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires python3 and CELLCOG_API_KEY; depends on the CellCog SDK.]\n\n## Skill Version(s):\n\n1.0.14 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.13: 3 files, 7089 bytes\n\nFiles: skill-card.md (1883b), SKILL.md (16009b), _meta.json (146b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\n**Claude Code, Cursor, Codex + 70 more agents:** `npx skills add cellcog/skills --skill cellcog`\n**OpenClaw:** `clawhub install cellcog`\n**CellCog plugin users:** run `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool)\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1785737349942\n}\n\nFile v1.0.13:skill-card.md\n\n## Description: <br>\nAI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[cellcog](https://clawhub.ai/user/cellcog) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to manage CellCog projects as document workspaces, upload and process files, read AI-generated context tree summaries, and retrieve time-limited document links for downstream workflows. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Signed document URLs can grant temporary access without CellCog authentication and should be treated as sensitive. <br>\nMitigation: Use the shortest practical expiration and avoid sharing signed URLs in logs, public chats, or with untrusted tools and people. <br>\n\n\n## Reference(s): <br>\n- [CellCog](https://cellcog.ai) <br>\n- [ClawHub Skill Page](https://clawhub.ai/cellcog/skills/project-management-cellcog) <br>\n- [CellCog Publisher Profile](https://clawhub.ai/user/cellcog) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration] <br>\n**Output Format:** [Markdown with Python examples and shell commands] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires the cellcog package and CELLCOG_API_KEY for live CellCog API workflows.] <br>\n\n## Skill Version(s): <br>\n1.0.13 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.12: 3 files, 7115 bytes\n\nFiles: skill-card.md (2068b), SKILL.md (15934b), _meta.json (146b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\nRun `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool) to install and authenticate.\n**OpenClaw users:** Run `clawhub install cellcog` instead.\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1785708359855\n}\n\nFile v1.0.12:skill-card.md\n\n## Description: <br>\nAI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[cellcog](https://clawhub.ai/user/cellcog) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external agents use this skill to create CellCog project workspaces, upload and organize documents, retrieve AI-processed context tree summaries, and obtain time-limited document URLs for project workflows. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Uploaded files, context tree summaries, and project documents may contain sensitive project data that is processed by CellCog. <br>\nMitigation: Install only for intended CellCog workspace use, upload only approved documents, and apply project access controls before sharing project identifiers or outputs. <br>\nRisk: Signed document URLs can grant direct document access without CellCog login until they expire. <br>\nMitigation: Use short expirations and avoid sharing signed URLs in logs, public chats, tickets, or other broadly visible channels. <br>\n\n\n## Reference(s): <br>\n- [CellCog Documentation](https://cellcog.ai) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Code, API Calls, Markdown, Configuration] <br>\n**Output Format:** [Markdown guidance with Python code examples and API method references] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires python3, the cellcog package, and CELLCOG_API_KEY for live CellCog project operations.] <br>\n\n## Skill Version(s): <br>\n1.0.12 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.11: 3 files, 7201 bytes\n\nFiles: skill-card.md (2331b), SKILL.md (15934b), _meta.json (146b)\n\nFile v1.0.11:SKILL.md\n\n---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\nRun `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool) to install and authenticate.\n**OpenClaw users:** Run `clawhub install cellcog` instead.\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1784735871220\n}\n\nFile v1.0.11:skill-card.md\n\n## Description: <br>\nAI project management powered by CellCog with knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval, and standalone or CellCog chat context workflows. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nitishgargiitd](https://clawhub.ai/user/nitishgargiitd) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and agents use this skill to create CellCog project workspaces, upload and process documents, inspect context tree markdown, and share temporary signed document URLs for project work. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Uploaded local files are sent to CellCog for processing and may consume credits. <br>\nMitigation: Upload only intended project documents, confirm file scope before upload, and account for credit usage. <br>\nRisk: Signed document URLs grant temporary unauthenticated access to project files. <br>\nMitigation: Use the shortest practical expiration, share URLs only with intended recipients, and avoid logging or broadly posting them. <br>\nRisk: A signed URL remains valid until its expiration even if project access changes later. <br>\nMitigation: Choose short expirations for sensitive files and regenerate access only when current sharing is still intended. <br>\n\n\n## Reference(s): <br>\n- [CellCog](https://cellcog.ai) <br>\n- [Project Management Cellcog on ClawHub](https://clawhub.ai/nitishgargiitd/skills/project-management-cellcog) <br>\n- [Publisher profile: nitishgargiitd](https://clawhub.ai/user/nitishgargiitd) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, code, shell commands, configuration] <br>\n**Output Format:** [Markdown with Python and shell code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires python3, CELLCOG_API_KEY, and CellCog SDK access; generated signed URLs are time-limited.] <br>\n\n## Skill Version(s): <br>\n1.0.11 (source: ClawHub release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.10: 3 files, 7133 bytes\n\nFiles: skill-card.md (2185b), SKILL.md (15912b), _meta.json (146b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: project-cog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Cog — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\nRun `/cellcog-setup` (or `/cellcog:cellcog-setup` depending on your tool) to install and authenticate.\n**OpenClaw users:** Run `clawhub install cellcog` instead.\n**Manual setup:** `pip install -U cellcog` and set `CELLCOG_API_KEY`. See the **cellcog** skill for SDK reference.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1776187974140\n}\n\nFile v1.0.10:skill-card.md\n\n## Description: <br>\nAI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[nitishgargiitd](https://clawhub.ai/user/nitishgargiitd) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and external agents use this skill to create CellCog project workspaces, upload and organize documents, read AI-processed context trees, generate signed document URLs, and supply project context to CellCog chats. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Selected project documents may be sent to CellCog for processing and persistent project context. <br>\nMitigation: Confirm before sharing confidential documents or starting CellCog chats over sensitive project data. <br>\nRisk: Signed document URLs grant temporary unauthenticated access and remain valid until expiration. <br>\nMitigation: Use the shortest practical expiration and avoid posting signed URLs in public logs or shared chats. <br>\nRisk: The skill can guide project and document deletion actions. <br>\nMitigation: Confirm destructive operations with the user before deleting documents or projects. <br>\n\n\n## Reference(s): <br>\n- [Project Cog on ClawHub](https://clawhub.ai/nitishgargiitd/project-cog) <br>\n- [CellCog](https://cellcog.ai) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration] <br>\n**Output Format:** [Markdown with Python and shell code examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May produce API calls that create, update, delete, upload, retrieve, and share CellCog project data.] <br>\n\n## Skill Version(s): <br>\n1.0.10 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.9: 2 files, 5941 bytes\n\nFiles: SKILL.md (15763b), _meta.json (145b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: project-cog\ndescription: \"CellCog Projects for agents. Create knowledge workspaces, upload documents, retrieve AI-processed context trees and signed URLs. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Cog — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**Cursor / Claude Code / Other agents (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.** Use `get_context_tree_markdown()` to understand what's available. You often don't need to download files — the markdown summaries are sufficient for many decisions.\n\n3. **Signed URLs enable cross-agent workflows.** Get a 24-hour URL and pass it to another agent or tool that needs the data. No CellCog auth needed on their end.\n\n4. **Projects work without CellCog chats.** You can use projects purely as a document store with AI-processed summaries. Upload docs, read the context tree, get signed URLs — all without creating a single CellCog chat.\n\n5. **Processing takes time.** After uploading, poll with `list_documents()` checking the `status` field. Don't use fixed sleeps — processing time varies by file size and type.\n\n6. **Use the right `context_tree_id`.** Every project has its own context tree. Get it from `list_projects()`, `create_project()`, or `get_project()`. Don't mix context tree IDs from different projects or organizations.\n\n\n---\n\n## If CellCog is not installed\n\n**Cursor:** Run `/cellcog-setup` to install and authenticate.\n**OpenClaw:** Run `clawhub install cellcog` for SDK setup.\n**Other agents:** `pip install cellcog` and set `CELLCOG_API_KEY`. See https://cellcog.ai for details.\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1776042081979\n}\n\nArchive v1.0.8: 2 files, 5919 bytes\n\nFiles: SKILL.md (15662b), _meta.json (145b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: project-cog\ndescription: \"Powered by CellCog. Knowledge workspaces for agents. Create projects, upload documents, retrieve AI-processed context trees and signed URLs. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Cog — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**Cursor / Claude Code / Other agents (blocks until done):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)\n```\n\n---\n\n## Project Lifecycle\n\n### Creating Projects\n\n```python\nproject = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}\n```\n\nThe creator is automatically an admin. Instructions are optional but help CellCog agents understand the project's purpose and work style.\n\n### Listing Projects\n\n```python\nprojects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}\n```\n\nEvery project in the list includes its `context_tree_id` — no need to call `get_project()` separately just to get it.\n\n### Getting Project Details\n\n```python\nproject = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}\n```\n\nUse `get_project()` when you need `project_instructions` or other details not included in the list.\n\n### Updating Projects\n\n```python\nclient.update_project(project_id, name=\"New Name\", instructions=\"Updated instructions\")\n```\n\nAdmin access required.\n\n### Deleting Projects\n\n```python\nclient.delete_project(project_id)\n```\n\nAdmin access required. Soft delete — contact support@cellcog.ai to recover.\n\n---\n\n## Document Management\n\nAll document operations use `context_tree_id`, not `project_id`. Get it from `list_projects()`, `create_project()`, or `get_project()` response.\n\n### Uploading Documents\n\n```python\nresult = client.upload_document(\n    context_tree_id=ct_id,\n    file_path=\"/path/to/document.pdf\",\n    brief_context=\"Q4 2025 earnings report with revenue breakdown\"\n)\n# Returns: {\"file_id\": \"...\", \"status\": \"processing\", \"message\": \"...\"}\n```\n\n**Admin access required.** The project creator is automatically an admin.\n\n**`brief_context` matters.** CellCog's AI uses it to generate better summaries in the context tree. A good brief context significantly improves the quality of the structured summary that agents will read later.\n\n**Supported file types:** PDF, DOCX, XLSX, PPTX, CSV, TXT, MD, images (JPG/PNG/GIF/WebP/SVG), audio (MP3/WAV/AAC/FLAC), video (MP4/AVI/MOV), and code files (JS/PY/Java/Go/etc.).\n\n**Max file size:** 100 MB per file.\n\n**Credit usage:** Uploads are processed by a lightweight AI agent using credits, so agents can access structured summaries and decide which documents to pull into context. Credit cost varies by document size and complexity.\n\n**Processing time:** After upload, CellCog processes the document (extracts text, generates summaries, updates the context tree). This takes 1-3 minutes for typical documents, longer for large files.\n\n### Waiting for Document Processing\n\nAfter uploading, poll until processing completes:\n\n```python\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n```\n\n### Listing Documents\n\n```python\ndocs = client.list_documents(ct_id)\n# Returns: {\"documents\": [{\"id\", \"original_filename\", \"file_type\", \"file_size\", \"status\", ...}]}\n```\n\nDocument status values:\n- `PENDING_PROCESSING` — Queued for processing\n- `PROCESSING` — Being processed\n- `SUCCEEDED` — Ready and in context tree\n- `ERRORED` — Processing failed (check `processing_error`)\n\n### Deleting Documents\n\n```python\nclient.delete_document(ct_id, file_id)\n\n# Or bulk delete (up to 100 at once):\nclient.bulk_delete_documents(ct_id, [file_id_1, file_id_2, ...])\n```\n\nAdmin access required.\n\n---\n\n## Context Trees — Your Knowledge Structure\n\nAfter documents are processed, CellCog organizes them into a **Context Tree** — a hierarchical markdown representation with file descriptions, metadata, and content summaries. This is the same proprietary data structure that CellCog's internal agents use.\n\n### Getting the Context Tree Markdown\n\n```python\n# Default: compact view with short summaries\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# Detailed view: includes long descriptions for each document\ntree = client.get_context_tree_markdown(ct_id, include_long_description=True)\nprint(tree[\"markdown\"])\n```\n\nUse `include_long_description=True` when you need full document details for deeper analysis. Default short descriptions are sufficient for most use cases and keep context windows efficient.\n\n**Example output:**\n\n```\n## 📁 / (Q4 Financial Analysis Documents)\nDocument repository for Q4 Financial Analysis.\n\n### 📁 /financials (Financial Reports)\nCore financial documents and earnings data\n\n#### 📄 /financials/earnings_report.pdf (Q4 2025 Earnings Report)\n*Created: 2 hours ago*\n**Type:** PDF (2.1 MB)\n\nComprehensive Q4 2025 earnings report with revenue breakdown by segment,\noperating margins, and forward guidance. Revenue grew 15% YoY to $12.3B.\n\n### 📁 /market (Market Data)\nCompetitive landscape and market research\n\n#### 📄 /market/market_analysis.xlsx (Competitor Market Share Data)\n*Created: 2 hours ago*\n**Type:** XLSX (450.5 KB)\n\nMarket share analysis across 5 competitors. Includes quarterly trends,\ngeographic breakdown, and pricing comparison matrix.\n```\n\n### Why Context Trees Matter for Agents\n\n1. **Understand before downloading.** Read the tree to know what's available without downloading every file.\n2. **AI-processed summaries.** Each file has a description generated by CellCog's AI — not just a filename.\n3. **Hierarchical organization.** Documents are organized into logical folders, making navigation intuitive.\n4. **Same view as CellCog agents.** When you pass `project_id` to a CellCog chat, the agent sees this exact tree.\n\n---\n\n## Signed URLs — Share Your Documents\n\nGenerate time-limited, pre-authenticated download URLs for any documents in the context tree. These URLs work without CellCog authentication — pass them to other agents, tools, or humans.\n\n### By File Path (Recommended)\n\nUse paths directly from the context tree markdown — no file IDs needed:\n\n```python\nurls = client.get_document_signed_urls_by_path(\n    context_tree_id=ct_id,\n    file_paths=[\"/financials/earnings_report.pdf\", \"/market/analysis.xlsx\"],\n    expiration_hours=24  # Valid for 24 hours (default: 1 hour, max: 168 = 7 days)\n)\n\n# Returns:\n# {\n#     \"urls\": {\"/financials/earnings_report.pdf\": \"https://storage.googleapis.com/...\", ...},\n#     \"errors\": {}\n# }\n```\n\n### By File ID (Alternative)\n\nUse file IDs from `list_documents()`:\n\n```python\nurls = client.get_document_signed_urls(\n    context_tree_id=ct_id,\n    file_ids=[\"file_id_1\", \"file_id_2\"],\n    expiration_hours=24\n)\n```\n\n### Use Cases\n\n- **Cross-agent sharing.** Pass URLs to other agents that need to read your documents.\n- **Human sharing.** Send URLs to your human so they can download files directly.\n- **External tool integration.** Pass URLs to APIs that accept file URLs (e.g., analysis services).\n- **Temporary access.** Use short expiry (1 hour) for one-time access, long expiry (7 days) for ongoing workflows.\n\n**Note:** Signed URLs remain valid for their full duration even if the user's project access is later revoked. New URLs cannot be generated after access is removed.\n\n---\n\n## Using Projects with CellCog Chats\n\nProjects are first-class in CellCog. When you pass a `project_id`, CellCog agents automatically get:\n\n- **All project documents** via the context tree\n- **Project instructions** that guide agent behavior\n- **Organization context** if the project belongs to an organization\n\n**Quick start:**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",  # See cellcog skill for all modes\n)\n```\n\nSee https://cellcog.ai for complete SDK API reference — delivery modes, `send_message()`, timeouts, file handling, and more.\n\n**Finding project and role IDs:**\n```python\n# List all projects\nprojects = client.list_projects()\n\n# Get project details (includes context_tree_id)\nproject = client.get_project(project_id)\n\n# List agent roles in a project\nroles = client.list_agent_roles(project_id)\n```\n\n---\n\n## API Reference\n\n### Project Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_projects()` | List all accessible projects |\n| `client.create_project(name, instructions=\"\")` | Create a new project (returns `id`, `context_tree_id`) |\n| `client.get_project(project_id)` | Get project details including `context_tree_id` |\n| `client.update_project(project_id, name=None, instructions=None)` | Update project (admin) |\n| `client.delete_project(project_id)` | Soft delete project (admin) |\n\n### Agent Roles (Read-Only)\n\n| Method | Description |\n|--------|-------------|\n| `client.list_agent_roles(project_id)` | List active roles (for discovering `agent_role_id` values) |\n\n### Document Management\n\n| Method | Description |\n|--------|-------------|\n| `client.list_documents(context_tree_id)` | List all documents with status |\n| `client.upload_document(context_tree_id, file_path, brief_context=None)` | Upload and process a document (admin) |\n| `client.delete_document(context_tree_id, file_id)` | Delete a document (admin) |\n| `client.bulk_delete_documents(context_tree_id, file_ids)` | Delete up to 100 documents (admin) |\n\n### Context Tree\n\n| Method | Description |\n|--------|-------------|\n| `client.get_context_tree_markdown(context_tree_id, include_long_description=False)` | Get AI-processed markdown view (set True for detailed descriptions) |\n| `client.get_document_signed_urls_by_path(context_tree_id, file_paths, expiration_hours=1)` | Get download URLs by file path (recommended) |\n| `client.get_document_signed_urls(context_tree_id, file_ids, expiration_hours=1)` | Get download URLs by file ID (alternative) |\n\n---\n\n## Human-Only Features\n\nThe following are managed by humans through the CellCog web UI at cellcog.ai:\n\n| Feature | Why | Where |\n|---------|-----|-------|\n| **Member management** | Invitation flow requires email verification | cellcog.ai → Projects → Members |\n| **Agent role creation/editing** | Prompt engineering best done interactively | cellcog.ai → Projects → Agent Roles |\n| **Google Drive import** | OAuth requires browser interaction | cellcog.ai → Projects → Import |\n\nAsk your human to configure these at https://cellcog.ai.\n\n---\n\n## Error Handling\n\n| Error | Cause | Resolution |\n|-------|-------|------------|\n| `APIError(404)` | Project or context tree not found | Verify the ID with `list_projects()` |\n| `APIError(403)` | Not a project member, or admin access required | Check membership; upload/delete require admin |\n| `APIError(400)` | Invalid request (e.g., file too large, unsupported type) | Check file size (<100MB) and supported types |\n| `FileUploadError` | Local file not found or upload failed | Verify file path exists and is readable |\n\nAll errors include descriptive messages. Check `error.message` for details.\n\n---\n\n## Tips\n\n1. **`brief_context` is your best investment.** A one-sentence description like \"Q4 2025 earnings with segment breakdown\" dramatically improves the AI-generated summary in the context tree.\n\n2. **Read the tree before downloading.*\n\nArchive v1.0.7: 2 files, 5734 bytes\n\nFiles: SKILL.md (14851b), _meta.json (145b)\n\nArchive v1.0.6: 2 files, 5729 bytes\n\nFiles: SKILL.md (14847b), _meta.json (145b)","readmeExcerpt":"Skill: Project Management Owner: cellcog Summary: AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. Tags: latest:1.0.15 Version history: v1.0.15 | 2026-08-24T02:04:25.870Z | user Content updated. v1.0.14 | 2026-08-24T01:49:08.543Z | user Content updated. v1.0.13 | 2026-08-03T06:09:09.942Z | us","codeSnippets":[],"executableExamples":[{"language":"python","snippet":"result = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)"},{"language":"python","snippet":"from cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])"},{"language":"python","snippet":"from cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCESSING\", \"PROCESSING\")]\n    if not pending:\n        break\n    time.sleep(10)\n\n# 4. Read the context tree — structured summary of all documents\ntree = client.get_context_tree_markdown(ct_id)\nprint(tree[\"markdown\"])\n\n# 5. Use with CellCog chat\n\n# OpenClaw agents (fire-and-forget):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    notify_session_key=\"agent:main:main\",  # OpenClaw only\n    task_label=\"board-deck\",\n)\n\n# All other agents (blocks until done):\nresult = client.create_chat(\n    prompt=\"Based on our project documents, create a board presentation\",\n    project_id=project_id,\n    task_label=\"board-deck\",\n)"},{"language":"python","snippet":"project = client.create_project(\n    name=\"My Research Project\",\n    instructions=\"Optional instructions for CellCog agents working in this project\"\n)\n# Returns: {\"id\": \"...\", \"name\": \"...\", \"context_tree_id\": \"...\", \"created_at\": \"...\"}"},{"language":"python","snippet":"projects = client.list_projects()\n# Returns: {\"projects\": [{\"id\", \"name\", \"is_admin\", \"context_tree_id\", \"files_count\", \"created_at\"}, ...]}"},{"language":"python","snippet":"project = client.get_project(project_id)\n# Returns: {\"id\", \"name\", \"project_instructions\", \"context_tree_id\", \"is_admin\", \"created_at\", ...}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: project-management-cellcog\ndescription: \"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context.\"\nauthor: CellCog\nhomepage: https://cellcog.ai\nmetadata:\n  openclaw:\n    emoji: \"📂\"\n    os: [darwin, linux, windows]\n    requires:\n      bins: [python3]\n      env: [CELLCOG_API_KEY]\ndependencies: [cellcog]\n---\n# Project Management — Knowledge Workspaces for Agents\n\nCellCog Projects are knowledge workspaces where documents are organized into AI-processed **Context Trees** — structured, hierarchical summaries that agents can read, search, and reason about.\n\n## Two Ways to Use Projects\n\n**1. With CellCog Chats** — Upload documents to a project, then pass `project_id` to `create_chat()`. CellCog agents automatically have access to all project documents and instructions.\n\n**2. Standalone** — Use projects purely as a knowledge management layer. Upload documents, retrieve context tree summaries, get signed URLs for sharing — no CellCog chat required. Any agent can use CellCog's proprietary Context Tree data structures for its own workflows.\n\n## How to Use\n\nFor your first CellCog task in a session, read the **cellcog** skill for the full SDK reference — file handling, chat modes, timeouts, and more.\n\n**OpenClaw (fire-and-forget):**\n```python\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    notify_session_key=\"agent:main:main\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\n```\n\n**All agents except OpenClaw (blocks until done):**\n```python\nfrom cellcog import CellCogClient\nclient = CellCogClient(agent_provider=\"openclaw|cursor|claude-code|codex|...\")\nresult = client.create_chat(\n    prompt=\"[your task prompt]\",\n    task_label=\"my-task\",\n    chat_mode=\"agent\",\n)\nprint(result[\"message\"])\n```\n\n\n---\n\n## Choosing Mode & Tier\n\n**Use `chat_mode=\"agent\"` (defaults to the `\"flash\"` tier)** — project/document management operations are light tasks; flash is fast and economical. Pass `chat_tier=\"max\"` only when a chat will ALSO do heavy work (deep analysis over the project's documents, complex production). Agent Team (`chat_mode=\"team\"`) is reserved for deep research.\n\n---\n\n## Quick Start\n\n```python\nfrom cellcog import CellCogClient\n\nclient = CellCogClient(agent_provider=\"openclaw\")\n\n# 1. Create a project\nproject = client.create_project(\n    name=\"Q4 Financial Analysis\",\n    instructions=\"Focus on quantitative analysis. Use conservative estimates.\"\n)\nproject_id = project[\"id\"]\nct_id = project[\"context_tree_id\"]\n\n# 2. Upload documents\nclient.upload_document(ct_id, \"/data/earnings_report.pdf\", \"Q4 2025 earnings report\")\nclient.upload_document(ct_id, \"/data/market_analysis.xlsx\", \"Competitor market share data\")\n\n# 3. Wait for processing (poll until all documents are ready)\nimport time\nwhile True:\n    docs = client.list_documents(ct_id)\n    pending = [d for d in docs[\"documents\"]\n               if d[\"status\"] in (\"PENDING_PROCE"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7a96cj9q65e0bhmzahv790en80ffqm\",\n  \"slug\": \"project-management-cellcog\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1787537065870\n}"},{"path":"skill-card.md","content":"## Description:\n\nAI project management powered by CellCog for knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval, and optional CellCog chat context.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[cellcog](https://clawhub.ai/user/cellcog)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and agents use this skill to create and manage CellCog project workspaces, upload and process documents, read context tree summaries, and retrieve temporary signed URLs for collaboration or CellCog chat context.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Installing or using an unofficial CellCog package or skill source could expose the agent environment to unintended code or behavior.\n\nMitigation: Verify the official CellCog package or skill source before installation and consider using an isolated environment.\n\nRisk: Generated signed URLs can grant temporary unauthenticated access to documents.\n\nMitigation: Share signed URLs only with trusted recipients, use the shortest practical expiration, and avoid highly confidential documents unless that sharing is intended.\n\nRisk: Project document uploads, updates, deletions, and signed URL generation can affect workspace contents or access.\n\nMitigation: Confirm project and context tree IDs, required admin access, target files, and intended recipients before running those operations.\n\n## Reference(s):\n\n- [CellCog](https://cellcog.ai)\n- [ClawHub Project Management Skill](https://clawhub.ai/cellcog/skills/project-management-cellcog)\n- [CellCog Publisher Profile](https://clawhub.ai/user/cellcog)\n\n## Skill Output:\n\n**Output Type(s):** [guidance, markdown, code, shell commands, configuration]\n\n**Output Format:** [Markdown with Python code examples and installation commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires python3, the CellCog package, and CELLCOG_API_KEY; generated signed URLs are time-limited and should be treated as temporary secrets.]\n\n## Skill Version(s):\n\n1.0.15 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. Skill: Project Management Owner: cellcog Summary: AI project management powered by CellCog. Knowledge workspaces, document upload, AI-processed context trees, signed URL retrieval. Works standalone or as CellCog chat context. Tags: latest:1.0.15 Version history: v1.0.15 | 2026-08-24T02:04:25.870Z | user Content updated. v1.0.14 | 2026-08-24T01:49:08.543Z | user Content updated. v1.0.13 | 2026-08-03T06:09:09.942Z | us","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1209,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T17:07:14.877Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:50:38.727Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}