OpenCowork Documentation

repository·main·Indexed 20 days ago

https://github.com/aidotnet/opencowork

An open-source desktop platform for multi-agent AI collaboration. OpenCowork provides AI agents with access to local filesystems, shell execution, and specialized tools. It features a multi-process architecture utilizing React 19, .NET 10 AOT, and an MCP client, supporting various agent modes including chat, clarify, cowork, code, and acp.

Tokens
219.4K
Snippets
408
Records
809
Agent score
69%

What's inside OpenCowork

  1. Overview of the PDF Skill

    main

    The pdf skill is a comprehensive toolkit designed for high-density, industry-standard PDF manipulation. It allows for extracting text and tables, creating new PDF documents, merging or splitting existing documents, and handling PDF forms. It is optimized for scenarios where an agent needs to programmatically process, generate, or analyze PDF documents at scale.

    Role for AI Agents: When using this skill, the agent should act as a Professional Document Architect and Technical Editor, focusing on information-rich, structured, and compact layouts.

  2. Overview of OpenCowork Native Worker

    main

    The OpenCowork.Native.Worker is a sidecar process designed to handle native, backend-heavy workloads that are too expensive to run in the Electron main process. It is intended to host tasks such as:

    • Tool calls
    • Database maintenance
    • Local indexing
    • Patch operations
    • Parts of the agent runtime

    Communication with the main process occurs via IPC (Inter-Process Communication) using length-prefixed MessagePack frames, ensuring that large payloads (like DB, file, or git data) do not interfere with stdout or stderr.

  3. Use the Creative Production Offer Library for reusable creative archetypes

    main

    The Creative Production Offer Library provides JSON-first reusable offer and product-advertising archetypes designed for Creative Production workflows. It allows teams to store and reuse creative families including archetypes, prompts, placeholders, constraints, and default instantiations.

    Discovery and Structure

    • Discovery: Use registry-index.json to discover which packs are currently active.
    • Pack Location: Packs are located in the packs/ directory.
    • Pack Format: Each pack follows a specific schema containing a version and a packs[] array, consistent with the ad and scene libraries.

    Managing Media Assets

    To keep the launch plugin package lightweight, do not bundle rendered example media within the packs. Instead, manage rendered examples using one of the following:

    • The outputs/ directory.
    • Internal team documentation.
    • An external approved media source.
  4. Use the csv-pipeline skill for tabular data processing

    main

    The csv-pipeline skill allows you to process, transform, analyze, and report on CSV, TSV, and JSON (including JSON Lines) files. It is designed for ETL workflows, data cleaning, and generating summary statistics without requiring external dependencies beyond Python 3.

    Requirements:

    • Python 3 must be installed and available in your environment.
    • The tool uses only the Python standard library (csv, json).

    Supported File Formats:

    • CSV
    • TSV
    • JSON
    • JSON Lines (jsonl)
  5. Use the Offer Explorer skill for visual prompt exploration

    main

    The creative-production-offer-explorer skill is used to generate image prompts across various visual prompt libraries for a specific product, digital product, service, venue, or campaign brief. It produces a reviewable 'offer exploration' package containing a prompt manifest, JSONL batch, individual images, a contact sheet, and an HTML gallery.

    When to use it:

    • To test a product concept, packaging reference, digital product UI, venue, or service experience.
    • To produce directional evidence and handoff specifications (not final production assets).

    When NOT to use it:

    • For broad campaign mood or brand direction (use moodboard-explorer instead).
    • For environment, customer moment, or real-world context exploration (use scene-explorer instead).
    • For final marketing polish (use generative-polish instead).
    • For controlled variations of existing concrete outputs (use the mood-board app's Remix controls instead).
  6. Use the product-design-prototype skill for frontend prototyping

    main

    The product-design-prototype skill is used to create frontend-only, interactive websites or applications. It is specifically designed to route requests for building prototypes from URLs, images, mockups, Figma files, existing code, or abstract ideas that require visual exploration.

    Key Constraint: The Golden Rule of Prototyping You must not begin building until you have a visual target. A visual target is defined as:

    • A user-provided image.
    • A source URL.
    • An ImageGen design selected by the user.

    Note that a $get-context brief is not a visual target. If no visual target is provided, you must use the $ideate workflow to generate options first.

  7. Manage Product Design user context

    main

    The product-design-user-context skill allows you to load, manage, and save product and design references (such as Figma files, URLs, screenshots, and design tokens) to ground future Product Design work. This ensures that ideation, prototypes, audits, and critiques match your specific product context by default.

    Use this skill when you need to:

    • Set up or onboard with Product Design.
    • Save product or design sources (URLs, Figma, assets).
    • See what Product Design currently remembers.
    • Update saved product or design context.
    • Set Product Design preferences.
  8. Overview of the OpenCowork Tool System

    main

    The tool system allows agents to interact with your local and remote environments. Key capabilities include:

    • File & Shell: Read, Write, Edit, Glob, Grep, and Bash (supports both local and SSH execution).
    • Browser: A built-in webview for navigation, snapshots, clicking, typing, and content extraction.
    • Task & Team: Decompose work using TaskCreate/TaskUpdate, spawn parallel sub-agents via Task, and orchestrate Agent Teams using TeamCreate, SendMessage, and TeamStatus.
    • Plan Mode: Use EnterPlanMode to write a plan and ExitPlanMode to return to standard operation.
    • Goal Tracking: Create and track session-level goals with token budgets.
    • Memory System: Layered memory using SOUL.md, USER.md, MEMORY.md, and per-project .agents/ overrides.
    • MCP Client: Connect to Model Context Protocol servers (stdio, SSE, streamable-HTTP) to expose MCP tools to the agent.
    • CodeGraph: On-demand repository indexing using tree-sitter. Agents can use structural tools like codegraph_explore, search, and callers/callees analysis.
    • Skill System: Dynamically load domain-specific skills from the Skills Market.
  9. Folk Frequency Visual Style

    main

    A cultural and vivid style best for consumer apps, food platforms, and community products.

    • Palette: Vivid folk colors: hot pink (#FF1493), cobalt blue (#0047AB), sun yellow (#FFE000), and emerald (#009B77).
    • Typography: Bold, warm, rounded type.
    • Composition: Patterns, repetition, and layered compositions with rich visual texture.
    • Motion: Joyful, celebratory motion; elements bounce, pop, and spin into place.
    • Transitions: Swirl Vortex or Ripple Waves (hypnotic).
    • GSAP Signature: back.out(1.6), elastic.out(1, 0.5). Intentional overshoots.
    Folk Frequency: Hot pink #FF1493, cobalt blue, sun yellow, emerald. Bold rounded type.
    Pattern and repetition throughout. Layered, dense, handcrafted feeling.
    Swirl Vortex or Ripple Waves transitions. Joyful, celebratory energy.
  10. Ensure Correct Child Process Handling for Codex Exec

    main

    When launching codex exec from a long-running local server, batch runner, or MCP-backed generation path, you must prevent the child process from inheriting an interactive or open parent stdin.

    Failure to close or redirect stdin can cause the preflight to hang indefinitely without producing marker files or stderr.

    Implementation Requirements

    • Python subprocess.run(...): Pass stdin=subprocess.DEVNULL.
    • Python subprocess.Popen(...): Pass stdin=subprocess.DEVNULL.
    • Node execFile(...): Use a Python runner that enforces stdin redirection for its own codex exec children.

    Warning: If a preflight hangs with no output, do not increase the preflight timeout first; check the stdin configuration instead.

  11. Use `user-context.md` and saved assets for grounding

    main

    Product Design work should be grounded in existing project context to avoid reinventing existing patterns.

    • Primary Source: If a user-context.md file exists in the environment, use it by default.
    • Contextual Elements: Use saved product URLs, Figma files, screenshots, reference images, codebase paths, Storybook, design tokens, brand assets, and component references to ground all work.
    • Visual Grounding: When performing ideation, prototyping, audits, clones, or critiques, always attach or include relevant saved screenshots, tokens, or design language to ensure visual fidelity.
  12. Implement the HyperFrames Timeline Contract

    main

    When authoring GSAP timelines for HyperFrames, you must adhere to these rules to ensure the framework can control playback and nesting correctly:

    1. Initialize Paused: All timelines must start with { paused: true } so the player can control playback.
    2. Register Timelines: You must register every timeline on the global object: window.__timelines["<composition-id>"] = tl.
    3. Avoid Manual Nesting: The framework automatically handles sub-timeline nesting; do not attempt to manually add them.
    4. Duration Source: The composition duration is driven by the data-duration attribute, not the GSAP timeline length.
    5. No Empty Tweens: Never create empty tweens solely to set or extend the duration of a timeline.