| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs(ai-gateway): add Limits page (#6500) * docs(ai-gateway): add Limits page * docs(ai-gateway): describe how limits work and apply * docs(ai-gateway): add limits screenshots, diagrams and increase requests | 12 天前 | |
feat(auto-router): add Smart Routers in two steps from AI Providers (#6788) * feat(auto-router): add Smart Routers in two steps from AI Providers Creating a Smart Router now saves its name, models and tasks first (applying to nobody), then who it applies to through PUT /v1/org/auto-routers/:id/assignment. Smart Routers move out of their own tab into AI Gateway > AI Providers, listed above providers with an Add a Smart Router button, and get their own pages like providers. * fix(auto-router): decide org-wide assignment under the router's lock | 7 天前 | |
docs: move cloud team quickstart into packages/docs (Mintlify) (#2917) | 3 个月前 | |
docs: explain on-prem organization branding (#2639) | 3 个月前 | |
docs(slack): add a step-by-step Connect Slack guide for the guided setup (#6690) Adds slack/connect-slack with the tutorial video and stills from a real run against OpenWork Cloud, puts it first in the Slack tab, points the overview, bot setup, troubleshooting and connector pages at it, and describes the Add Slack checklist as the default in OpenWork Cloud. | 9 天前 | |
Fix/changelog (#1361) * minor improvement changelog * test to see if mintlify renders gifs * test to see if mintlify renders gifs2 * gifs side by side * minimal * march 13th * march 15th * simpler changelog * simplified changelog * mintlify fix * changelog fix * correct filename * mp4 to gif * simplifying * weird bug tracking | 6 个月前 | |
Fix/changelog (#1361) * minor improvement changelog * test to see if mintlify renders gifs * test to see if mintlify renders gifs2 * gifs side by side * minimal * march 13th * march 15th * simpler changelog * simplified changelog * mintlify fix * changelog fix * correct filename * mp4 to gif * simplifying * weird bug tracking | 6 个月前 | |
docs: add anthropic api key setup tutorial (#1390) * docs: add anthropic api key setup tutorial Guide users through manual Anthropic API key creation now that Anthropic uses direct key entry in OpenWork. Include screenshot placeholders for the Anthropic console flow so support docs can be illustrated later. * screenshots re-anthropic * correct image render | 6 个月前 | |
docs: add anthropic api key setup tutorial (#1390) * docs: add anthropic api key setup tutorial Guide users through manual Anthropic API key creation now that Anthropic uses direct key entry in OpenWork. Include screenshot placeholders for the Anthropic console flow so support docs can be illustrated later. * screenshots re-anthropic * correct image render | 6 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
docs: restructure the docs entrypoint around user intent (#1465) * docs: rewrite intro with privacy-first positioning Lead with "privacy-first, open-source alternative to Claude Cowork" and cut the coding-agent framing. Reorganize the page into three scannable sections (Start / For teams / For developers), keep the existing self-host/orchestrator steps under a dedicated section below. * docs: regroup sidebar into outcome-based clusters Rename tabs "Cloud docs" → "Cloud" and "Cloud API" → "API" for shorter, clearer labels. Replace the generic "Desktop App" and "Tutorials" groups in Start here with two outcome-based clusters: "Connect your stack" (providers, MCPs, search) and "Do work with it" (browser, automations, skills, sharing). Reorganize the flat Cloud list into three clusters that map to real admin questions: "Share with your team" (templates, skill hubs, providers), "Run in the cloud" (shared workspaces, Slack), and "Manage access" (members & RBAC). Enterprise stays at the tail as a standalone contact-sales page. Slack moves from Start here to Cloud "Run in the cloud" since the Slack setup doc itself recommends pairing Slack with a remote workspace. * docs: surface changelog and roadmap on the intro Add a one-liner in the developers section pointing to the changelog and roadmap, and include both in the footer links. Developers evaluating the project want to see shipping velocity and direction. * docs(self-host): add dedicated self-host page with cloud/enterprise upsells Extract the openwork-orchestrator install steps out of the intro into a dedicated Self-host page. Keeps the intro short and gives self-hosters a direct, linkable entry point. The page includes two upsell paths: - Cloud, for readers who realize mid-read they don't want to run infra. Links into the team primitives (skill hubs, providers, RBAC, shared workspaces) that are hardest to replicate on your own box. - Enterprise, framed around concrete scale pressures (SSO, audit, allowlists, VPC, support) rather than a generic 'talk to sales' pitch. Links to the existing cloud-enterprise contact page. Add the page to the Start here tab as a top-level sibling of the intro so self-hosters find it immediately. * docs: move self-host below the outcome clusters Self-hosting is what people reach for after they've installed the desktop app and tried the basic flow, not before. Move it below "Connect your stack" and "Do work with it" so the sidebar reflects that progression. * docs: rename intro page title to "Introduction" "OpenWork" as a sidebar label is tautological — every page is about OpenWork. "Introduction" tells the reader what the page is, which is what a sidebar label is for. The in-page hero copy still carries the positioning. * docs: rewrite page titles as actions Sidebar labels should describe what the reader wants to do, not what the page is. Rename every page title to start with (or imply) a verb: - Introduction → Get started - How to connect ChatGPT to Openwork → Connect ChatGPT - How to get an Anthropic API key → Connect Anthropic - Adding a custom LLM provider/model → Connect a custom LLM - Adding a custom MCP → Add an MCP server - Enable Advanced Search with Exa → Enable Exa search - Controlling your browser with OpenWork → Control the browser - Automating Tasks → Automate tasks - Importing a skill → Import a skill - How to share your agents with others → Share your setup - Self-host OpenWork → Self-host - Missing Documentation? → Report missing docs Makes the sidebar scannable by intent: each label is a thing the reader is trying to accomplish. * docs: restore precision in provider titles "Connect X" flattened two different setup flows into one label. Readers scanning the sidebar need to know what they'll do before clicking: - Sign in with ChatGPT (OAuth, no key needed) - Add Anthropic API key (paste a secret from Anthropic) - Add a custom LLM (config, not auth) MCP and Exa labels already carry their own distinct verbs and are left unchanged. * docs: turn missing-docs into a question with two paths "Missing docs?" as a question invites the click. Inside, offer both the low-effort path (email us) and the contributor path (open a PR against the docs folder). Drops the "A message from the Openwork Developers" preamble, which was noise. * docs: reorganize into tab folders, rename files to match titles Mirrors the tab/group structure in docs.json so files are easier to locate. Filenames now track page titles (prefixes like how-to- and cloud- dropped since folders provide that context). Single-page groups stay flat at the tab root; roadmap and changelog remain at repo root as their own tabs. Cross-links in mdx files and docs.json redirects updated for the new paths. * docs: add roadmap/changelog folders, rename images, deprecate unused assets Moves roadmap.mdx and changelog.mdx into their own tab folders for consistency with the rest of the reorg, and removes the orphaned introduction.mdx. Renames CleanShot/Screenshot/image-* files to descriptive names based on content and updates the corresponding alt text. Unused images and a stray .mov land in images/deprecated/ rather than being deleted. docs.json gains /roadmap and /changelog redirects so old inbound URLs still resolve. * more clear get starter docs * docs: render get-started paths as Mintlify cards * no need to have the same title twice * edits * more concise | 6 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
feat(app): import Claude chats and Claude Code sessions (#6444) * feat(app): import Claude chats and Claude Code sessions from Settings Settings → Import brings Claude Code sessions saved for the workspace folder and chats from a Claude data export into the workspace as native chats. Behind claudeHistoryImport (off). Adds the import guide to the docs' Move from Claude section. * feat(app): polish the Claude import page and add guide screenshots Claude mark on each source, sessions not yet imported start ticked, one focal Import action that only shows when something is selected, a drop area for the Claude export, and matching row and lane actions. The guide shows the page and an imported session. | 14 天前 | |
feat(app): import Claude chats and Claude Code sessions (#6444) * feat(app): import Claude chats and Claude Code sessions from Settings Settings → Import brings Claude Code sessions saved for the workspace folder and chats from a Claude data export into the workspace as native chats. Behind claudeHistoryImport (off). Adds the import guide to the docs' Move from Claude section. * feat(app): polish the Claude import page and add guide screenshots Claude mark on each source, sessions not yet imported start ticked, one focal Import action that only shows when something is selected, a drop area for the Claude export, and matching row and lane actions. The guide shows the page and an imported session. | 14 天前 | |
docs(providers): update org provider guides to AI Gateway and auto-sync (#5403) The Providers for your org pages still described Models > Bring your Own Keys, Settings > Cloud Providers, and a manual Import/Sync/Uninstall flow. Den now puts legacy providers under AI Gateway > AI Providers and the desktop app syncs org providers automatically. - Rewrite managed/custom/per-member pages against current UI strings - Add docs-shots scenes for the legacy provider list, forms, detail, and desktop Cloud providers section; seed one legacy provider - Enable AI Gateway management in the acme-docs world (closed port) - Pin Electron docs shots to the dark scheme to match the backdrop paint - Fix stale Cloud Providers references in two connect-your-stack pages Signed-off-by: Benjamin Shafii <ben@prologe.io> | 1 个月前 | |
docs(providers): update org provider guides to AI Gateway and auto-sync (#5403) The Providers for your org pages still described Models > Bring your Own Keys, Settings > Cloud Providers, and a manual Import/Sync/Uninstall flow. Den now puts legacy providers under AI Gateway > AI Providers and the desktop app syncs org providers automatically. - Rewrite managed/custom/per-member pages against current UI strings - Add docs-shots scenes for the legacy provider list, forms, detail, and desktop Cloud providers section; seed one legacy provider - Enable AI Gateway management in the acme-docs world (closed port) - Pin Electron docs shots to the dark scheme to match the backdrop paint - Fix stale Cloud Providers references in two connect-your-stack pages Signed-off-by: Benjamin Shafii <ben@prologe.io> | 1 个月前 | |
docs(providers): update org provider guides to AI Gateway and auto-sync (#5403) The Providers for your org pages still described Models > Bring your Own Keys, Settings > Cloud Providers, and a manual Import/Sync/Uninstall flow. Den now puts legacy providers under AI Gateway > AI Providers and the desktop app syncs org providers automatically. - Rewrite managed/custom/per-member pages against current UI strings - Add docs-shots scenes for the legacy provider list, forms, detail, and desktop Cloud providers section; seed one legacy provider - Enable AI Gateway management in the acme-docs world (closed port) - Pin Electron docs shots to the dark scheme to match the backdrop paint - Fix stale Cloud Providers references in two connect-your-stack pages Signed-off-by: Benjamin Shafii <ben@prologe.io> | 1 个月前 | |
added images to documentation (#1404) | 6 个月前 | |
docs(providers): update org provider guides to AI Gateway and auto-sync (#5403) The Providers for your org pages still described Models > Bring your Own Keys, Settings > Cloud Providers, and a manual Import/Sync/Uninstall flow. Den now puts legacy providers under AI Gateway > AI Providers and the desktop app syncs org providers automatically. - Rewrite managed/custom/per-member pages against current UI strings - Add docs-shots scenes for the legacy provider list, forms, detail, and desktop Cloud providers section; seed one legacy provider - Enable AI Gateway management in the acme-docs world (closed port) - Pin Electron docs shots to the dark scheme to match the backdrop paint - Fix stale Cloud Providers references in two connect-your-stack pages Signed-off-by: Benjamin Shafii <ben@prologe.io> | 1 个月前 | |
feat(app): desktop discovers and connects org-level MCP connections (staged rollout + rollback) (#2451) * feat(app): desktop discovers and connects org-level MCP connections Adds a "From your organization" section to Settings > Extensions > MCP, additive alongside the existing static Quick Connect grid. Sourced live from Den's /v1/mcp-connections?scope=usable (from PR #2406), it's the first piece of desktop-side consumption of that system. - den.ts: DenExternalMcpConnection type + listMcpConnections / startMcpConnectionConnect client methods, mirroring the existing listOrgLlmProviders pattern. - use-org-mcp-connections.ts: fetch-on-mount hook; connect() calls connect/start, opens the returned authorize URL via openDesktopUrl, then polls (mirrors the existing MCP OAuth poll-until-connected pattern) until the member's own connectedForMe flips true. - mcp-view.tsx: new McpOrgConnectionsSection using the existing ExtensionCard component unmodified. A pure resolveOrgMcpConnectionCardState helper (unit tested) decides card state: shared connections are shown as admin-managed and non-actionable; per_member connections show "Connect your account" until the calling member has their own token. - settings-route.tsx: wires the hook in and refreshes it from the existing Refresh button alongside the other cloud-sourced refreshes. Scope, deliberately: creating new org connections from the desktop is NOT included — POST /v1/mcp-connections is admin-only server-side, and den-web's admin dashboard already covers creation/management. This is consumption-only: discover what an admin published, connect your own account if needed. Local-only entries (OpenWork Browser, UI Control, local-command custom MCPs) are untouched since Den cannot spawn processes on a member's machine. Proven end-to-end with evals/flows/desktop-org-mcp-consolidation.flow.mjs (fraimz PASSED, 2 runs): a real click drives a real connect/start call, the OS browser it opens completes a real OAuth round trip against a mock IdP (witnessed via the mock server's own request log), and the SAME card flips from "Connect your account" to "Connected" without a page reload — proving the poll-driven UI update, not a manual refresh. Regression-checked against the pre-existing settings-extensions-mcp flow (still passing) to confirm the static Quick Connect grid is untouched. Depends on PR #2406 (External MCP Connections) for the underlying /v1/mcp-connections API — this branch is stacked on feat/external-mcp-connections. * feat(app): org MCP connections join the unified Extensions catalog with docs + passing fraimz - Project org MCP connections as ExtensionItems: per-member grants appear in Marketplace as 'Connect your account', connected/shared ones land in My Extensions — no special org-only section. - Dedupe static Quick Connect suggestions only when an org equivalent renders, never hiding configured direct MCPs. - Den OAuth callback page now deep-links back to the OpenWork app. - Route mounted /workspace/:id/opencode clients' promptAsync/command through the OpenWork wrapper path. - Add tutorial docs (shared-mcp-connections.mdx) with validated screenshots. - Add desktop-org-mcp-demo fraimz flow (Marketplace -> real browser OAuth -> My Extensions -> Cloud Control -> real chat tool execution with external mock-server witness); old consolidation flow delegates to it. * revert(app): drop the shared-path promptAsync/command wrapper change from this PR The 2-line opencode.ts change rerouted prompt/command for every openwork-mounted workspace — the one piece of this PR that changed behavior for users who never touch org MCP connections. It now ships separately as fix/opencode-openwork-wrapper-writes so this PR is purely additive and data-driven. * feat(server): staged-rollout gate for member-facing org MCP connections Hosted deployments can roll the desktop org-MCP experience out per org: with DEN_MCP_CONNECTIONS_GATING_ENABLED=true, scope=usable returns an empty list unless the org opted in via metadata mcpConnectionsEnabled: true — byte-identical to an org with no published connections, on every desktop version in the field (server-enforced, no client flag needed). - Gating is off by default: local dev, evals, and self-hosted keep the feature working out of the box (mirrors DEN_PLAN_GATING_ENABLED). - scope=manageable, create, and access-grant routes stay available so admins can stage connections before the flag flips. - Pilot enable: UPDATE organization SET metadata = JSON_SET( COALESCE(metadata,'{}'), '$.mcpConnectionsEnabled', CAST('true' AS JSON)) WHERE slug = '<org>'; - New-orgs-only default can later hook the same flag in org creation. * fix(server): reword connect/start comment so the route-policy parser can scan this file route-access-policy.test.ts parses route registrations with a scanner that understands strings but not comments; the apostrophe in "that's" opened a phantom string and made every subsequent route in this file unparseable (test failed with 'Unclosed route registration' on this branch while passing on dev). * chore(server): rollback tooling for the org MCP connections rollout Layer 0 — no deploy: scripts/mcp-connections-rollout.ts (den-api) flips the per-org metadata opt-in (status / enable / disable / dark), taking effect on the next desktop poll for every app version in the field. Layer 1 — code: scripts/revert-org-mcp-connections.sh builds a revert branch from the squash commits on dev (#2439, --all adds #2406), newest first, leaving the additive DB tables in place on purpose. | 4 个月前 | |
added images to documentation (#1404) | 6 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
docs: automated documentation updates 2026-04-19 (#1498) * docs: update documentation based on recent changes * more clear enterprise docs * docs(cloud): add org settings screenshot * docs(cloud): use frame for org settings screenshot | 6 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
added images to documentation (#1404) | 6 个月前 | |
docs(providers): update org provider guides to AI Gateway and auto-sync (#5403) The Providers for your org pages still described Models > Bring your Own Keys, Settings > Cloud Providers, and a manual Import/Sync/Uninstall flow. Den now puts legacy providers under AI Gateway > AI Providers and the desktop app syncs org providers automatically. - Rewrite managed/custom/per-member pages against current UI strings - Add docs-shots scenes for the legacy provider list, forms, detail, and desktop Cloud providers section; seed one legacy provider - Enable AI Gateway management in the acme-docs world (closed port) - Pin Electron docs shots to the dark scheme to match the backdrop paint - Fix stale Cloud Providers references in two connect-your-stack pages Signed-off-by: Benjamin Shafii <ben@prologe.io> | 1 个月前 | |
feat(app): desktop discovers and connects org-level MCP connections (staged rollout + rollback) (#2451) * feat(app): desktop discovers and connects org-level MCP connections Adds a "From your organization" section to Settings > Extensions > MCP, additive alongside the existing static Quick Connect grid. Sourced live from Den's /v1/mcp-connections?scope=usable (from PR #2406), it's the first piece of desktop-side consumption of that system. - den.ts: DenExternalMcpConnection type + listMcpConnections / startMcpConnectionConnect client methods, mirroring the existing listOrgLlmProviders pattern. - use-org-mcp-connections.ts: fetch-on-mount hook; connect() calls connect/start, opens the returned authorize URL via openDesktopUrl, then polls (mirrors the existing MCP OAuth poll-until-connected pattern) until the member's own connectedForMe flips true. - mcp-view.tsx: new McpOrgConnectionsSection using the existing ExtensionCard component unmodified. A pure resolveOrgMcpConnectionCardState helper (unit tested) decides card state: shared connections are shown as admin-managed and non-actionable; per_member connections show "Connect your account" until the calling member has their own token. - settings-route.tsx: wires the hook in and refreshes it from the existing Refresh button alongside the other cloud-sourced refreshes. Scope, deliberately: creating new org connections from the desktop is NOT included — POST /v1/mcp-connections is admin-only server-side, and den-web's admin dashboard already covers creation/management. This is consumption-only: discover what an admin published, connect your own account if needed. Local-only entries (OpenWork Browser, UI Control, local-command custom MCPs) are untouched since Den cannot spawn processes on a member's machine. Proven end-to-end with evals/flows/desktop-org-mcp-consolidation.flow.mjs (fraimz PASSED, 2 runs): a real click drives a real connect/start call, the OS browser it opens completes a real OAuth round trip against a mock IdP (witnessed via the mock server's own request log), and the SAME card flips from "Connect your account" to "Connected" without a page reload — proving the poll-driven UI update, not a manual refresh. Regression-checked against the pre-existing settings-extensions-mcp flow (still passing) to confirm the static Quick Connect grid is untouched. Depends on PR #2406 (External MCP Connections) for the underlying /v1/mcp-connections API — this branch is stacked on feat/external-mcp-connections. * feat(app): org MCP connections join the unified Extensions catalog with docs + passing fraimz - Project org MCP connections as ExtensionItems: per-member grants appear in Marketplace as 'Connect your account', connected/shared ones land in My Extensions — no special org-only section. - Dedupe static Quick Connect suggestions only when an org equivalent renders, never hiding configured direct MCPs. - Den OAuth callback page now deep-links back to the OpenWork app. - Route mounted /workspace/:id/opencode clients' promptAsync/command through the OpenWork wrapper path. - Add tutorial docs (shared-mcp-connections.mdx) with validated screenshots. - Add desktop-org-mcp-demo fraimz flow (Marketplace -> real browser OAuth -> My Extensions -> Cloud Control -> real chat tool execution with external mock-server witness); old consolidation flow delegates to it. * revert(app): drop the shared-path promptAsync/command wrapper change from this PR The 2-line opencode.ts change rerouted prompt/command for every openwork-mounted workspace — the one piece of this PR that changed behavior for users who never touch org MCP connections. It now ships separately as fix/opencode-openwork-wrapper-writes so this PR is purely additive and data-driven. * feat(server): staged-rollout gate for member-facing org MCP connections Hosted deployments can roll the desktop org-MCP experience out per org: with DEN_MCP_CONNECTIONS_GATING_ENABLED=true, scope=usable returns an empty list unless the org opted in via metadata mcpConnectionsEnabled: true — byte-identical to an org with no published connections, on every desktop version in the field (server-enforced, no client flag needed). - Gating is off by default: local dev, evals, and self-hosted keep the feature working out of the box (mirrors DEN_PLAN_GATING_ENABLED). - scope=manageable, create, and access-grant routes stay available so admins can stage connections before the flag flips. - Pilot enable: UPDATE organization SET metadata = JSON_SET( COALESCE(metadata,'{}'), '$.mcpConnectionsEnabled', CAST('true' AS JSON)) WHERE slug = '<org>'; - New-orgs-only default can later hook the same flag in org creation. * fix(server): reword connect/start comment so the route-policy parser can scan this file route-access-policy.test.ts parses route registrations with a scanner that understands strings but not comments; the apostrophe in "that's" opened a phantom string and made every subsequent route in this file unparseable (test failed with 'Unclosed route registration' on this branch while passing on dev). * chore(server): rollback tooling for the org MCP connections rollout Layer 0 — no deploy: scripts/mcp-connections-rollout.ts (den-api) flips the per-org metadata opt-in (status / enable / disable / dark), taking effect on the next desktop poll for every app version in the field. Layer 1 — code: scripts/revert-org-mcp-connections.sh builds a revert branch from the squash commits on dev (#2439, --all adds #2406), newest first, leaving the additive DB tables in place on purpose. | 4 个月前 | |
feat(app): desktop discovers and connects org-level MCP connections (staged rollout + rollback) (#2451) * feat(app): desktop discovers and connects org-level MCP connections Adds a "From your organization" section to Settings > Extensions > MCP, additive alongside the existing static Quick Connect grid. Sourced live from Den's /v1/mcp-connections?scope=usable (from PR #2406), it's the first piece of desktop-side consumption of that system. - den.ts: DenExternalMcpConnection type + listMcpConnections / startMcpConnectionConnect client methods, mirroring the existing listOrgLlmProviders pattern. - use-org-mcp-connections.ts: fetch-on-mount hook; connect() calls connect/start, opens the returned authorize URL via openDesktopUrl, then polls (mirrors the existing MCP OAuth poll-until-connected pattern) until the member's own connectedForMe flips true. - mcp-view.tsx: new McpOrgConnectionsSection using the existing ExtensionCard component unmodified. A pure resolveOrgMcpConnectionCardState helper (unit tested) decides card state: shared connections are shown as admin-managed and non-actionable; per_member connections show "Connect your account" until the calling member has their own token. - settings-route.tsx: wires the hook in and refreshes it from the existing Refresh button alongside the other cloud-sourced refreshes. Scope, deliberately: creating new org connections from the desktop is NOT included — POST /v1/mcp-connections is admin-only server-side, and den-web's admin dashboard already covers creation/management. This is consumption-only: discover what an admin published, connect your own account if needed. Local-only entries (OpenWork Browser, UI Control, local-command custom MCPs) are untouched since Den cannot spawn processes on a member's machine. Proven end-to-end with evals/flows/desktop-org-mcp-consolidation.flow.mjs (fraimz PASSED, 2 runs): a real click drives a real connect/start call, the OS browser it opens completes a real OAuth round trip against a mock IdP (witnessed via the mock server's own request log), and the SAME card flips from "Connect your account" to "Connected" without a page reload — proving the poll-driven UI update, not a manual refresh. Regression-checked against the pre-existing settings-extensions-mcp flow (still passing) to confirm the static Quick Connect grid is untouched. Depends on PR #2406 (External MCP Connections) for the underlying /v1/mcp-connections API — this branch is stacked on feat/external-mcp-connections. * feat(app): org MCP connections join the unified Extensions catalog with docs + passing fraimz - Project org MCP connections as ExtensionItems: per-member grants appear in Marketplace as 'Connect your account', connected/shared ones land in My Extensions — no special org-only section. - Dedupe static Quick Connect suggestions only when an org equivalent renders, never hiding configured direct MCPs. - Den OAuth callback page now deep-links back to the OpenWork app. - Route mounted /workspace/:id/opencode clients' promptAsync/command through the OpenWork wrapper path. - Add tutorial docs (shared-mcp-connections.mdx) with validated screenshots. - Add desktop-org-mcp-demo fraimz flow (Marketplace -> real browser OAuth -> My Extensions -> Cloud Control -> real chat tool execution with external mock-server witness); old consolidation flow delegates to it. * revert(app): drop the shared-path promptAsync/command wrapper change from this PR The 2-line opencode.ts change rerouted prompt/command for every openwork-mounted workspace — the one piece of this PR that changed behavior for users who never touch org MCP connections. It now ships separately as fix/opencode-openwork-wrapper-writes so this PR is purely additive and data-driven. * feat(server): staged-rollout gate for member-facing org MCP connections Hosted deployments can roll the desktop org-MCP experience out per org: with DEN_MCP_CONNECTIONS_GATING_ENABLED=true, scope=usable returns an empty list unless the org opted in via metadata mcpConnectionsEnabled: true — byte-identical to an org with no published connections, on every desktop version in the field (server-enforced, no client flag needed). - Gating is off by default: local dev, evals, and self-hosted keep the feature working out of the box (mirrors DEN_PLAN_GATING_ENABLED). - scope=manageable, create, and access-grant routes stay available so admins can stage connections before the flag flips. - Pilot enable: UPDATE organization SET metadata = JSON_SET( COALESCE(metadata,'{}'), '$.mcpConnectionsEnabled', CAST('true' AS JSON)) WHERE slug = '<org>'; - New-orgs-only default can later hook the same flag in org creation. * fix(server): reword connect/start comment so the route-policy parser can scan this file route-access-policy.test.ts parses route registrations with a scanner that understands strings but not comments; the apostrophe in "that's" opened a phantom string and made every subsequent route in this file unparseable (test failed with 'Unclosed route registration' on this branch while passing on dev). * chore(server): rollback tooling for the org MCP connections rollout Layer 0 — no deploy: scripts/mcp-connections-rollout.ts (den-api) flips the per-org metadata opt-in (status / enable / disable / dark), taking effect on the next desktop poll for every app version in the field. Layer 1 — code: scripts/revert-org-mcp-connections.sh builds a revert branch from the squash commits on dev (#2439, --all adds #2406), newest first, leaving the additive DB tables in place on purpose. | 4 个月前 | |
feat(app): desktop discovers and connects org-level MCP connections (staged rollout + rollback) (#2451) * feat(app): desktop discovers and connects org-level MCP connections Adds a "From your organization" section to Settings > Extensions > MCP, additive alongside the existing static Quick Connect grid. Sourced live from Den's /v1/mcp-connections?scope=usable (from PR #2406), it's the first piece of desktop-side consumption of that system. - den.ts: DenExternalMcpConnection type + listMcpConnections / startMcpConnectionConnect client methods, mirroring the existing listOrgLlmProviders pattern. - use-org-mcp-connections.ts: fetch-on-mount hook; connect() calls connect/start, opens the returned authorize URL via openDesktopUrl, then polls (mirrors the existing MCP OAuth poll-until-connected pattern) until the member's own connectedForMe flips true. - mcp-view.tsx: new McpOrgConnectionsSection using the existing ExtensionCard component unmodified. A pure resolveOrgMcpConnectionCardState helper (unit tested) decides card state: shared connections are shown as admin-managed and non-actionable; per_member connections show "Connect your account" until the calling member has their own token. - settings-route.tsx: wires the hook in and refreshes it from the existing Refresh button alongside the other cloud-sourced refreshes. Scope, deliberately: creating new org connections from the desktop is NOT included — POST /v1/mcp-connections is admin-only server-side, and den-web's admin dashboard already covers creation/management. This is consumption-only: discover what an admin published, connect your own account if needed. Local-only entries (OpenWork Browser, UI Control, local-command custom MCPs) are untouched since Den cannot spawn processes on a member's machine. Proven end-to-end with evals/flows/desktop-org-mcp-consolidation.flow.mjs (fraimz PASSED, 2 runs): a real click drives a real connect/start call, the OS browser it opens completes a real OAuth round trip against a mock IdP (witnessed via the mock server's own request log), and the SAME card flips from "Connect your account" to "Connected" without a page reload — proving the poll-driven UI update, not a manual refresh. Regression-checked against the pre-existing settings-extensions-mcp flow (still passing) to confirm the static Quick Connect grid is untouched. Depends on PR #2406 (External MCP Connections) for the underlying /v1/mcp-connections API — this branch is stacked on feat/external-mcp-connections. * feat(app): org MCP connections join the unified Extensions catalog with docs + passing fraimz - Project org MCP connections as ExtensionItems: per-member grants appear in Marketplace as 'Connect your account', connected/shared ones land in My Extensions — no special org-only section. - Dedupe static Quick Connect suggestions only when an org equivalent renders, never hiding configured direct MCPs. - Den OAuth callback page now deep-links back to the OpenWork app. - Route mounted /workspace/:id/opencode clients' promptAsync/command through the OpenWork wrapper path. - Add tutorial docs (shared-mcp-connections.mdx) with validated screenshots. - Add desktop-org-mcp-demo fraimz flow (Marketplace -> real browser OAuth -> My Extensions -> Cloud Control -> real chat tool execution with external mock-server witness); old consolidation flow delegates to it. * revert(app): drop the shared-path promptAsync/command wrapper change from this PR The 2-line opencode.ts change rerouted prompt/command for every openwork-mounted workspace — the one piece of this PR that changed behavior for users who never touch org MCP connections. It now ships separately as fix/opencode-openwork-wrapper-writes so this PR is purely additive and data-driven. * feat(server): staged-rollout gate for member-facing org MCP connections Hosted deployments can roll the desktop org-MCP experience out per org: with DEN_MCP_CONNECTIONS_GATING_ENABLED=true, scope=usable returns an empty list unless the org opted in via metadata mcpConnectionsEnabled: true — byte-identical to an org with no published connections, on every desktop version in the field (server-enforced, no client flag needed). - Gating is off by default: local dev, evals, and self-hosted keep the feature working out of the box (mirrors DEN_PLAN_GATING_ENABLED). - scope=manageable, create, and access-grant routes stay available so admins can stage connections before the flag flips. - Pilot enable: UPDATE organization SET metadata = JSON_SET( COALESCE(metadata,'{}'), '$.mcpConnectionsEnabled', CAST('true' AS JSON)) WHERE slug = '<org>'; - New-orgs-only default can later hook the same flag in org creation. * fix(server): reword connect/start comment so the route-policy parser can scan this file route-access-policy.test.ts parses route registrations with a scanner that understands strings but not comments; the apostrophe in "that's" opened a phantom string and made every subsequent route in this file unparseable (test failed with 'Unclosed route registration' on this branch while passing on dev). * chore(server): rollback tooling for the org MCP connections rollout Layer 0 — no deploy: scripts/mcp-connections-rollout.ts (den-api) flips the per-org metadata opt-in (status / enable / disable / dark), taking effect on the next desktop poll for every app version in the field. Layer 1 — code: scripts/revert-org-mcp-connections.sh builds a revert branch from the squash commits on dev (#2439, --all adds #2406), newest first, leaving the additive DB tables in place on purpose. | 4 个月前 | |
docs: distinguish local setup from managed Cloud (#3991) * docs: clarify local and Cloud team setup * docs: add desktop team prompt cards shot | 2 个月前 | |
docs: restructure the docs entrypoint around user intent (#1465) * docs: rewrite intro with privacy-first positioning Lead with "privacy-first, open-source alternative to Claude Cowork" and cut the coding-agent framing. Reorganize the page into three scannable sections (Start / For teams / For developers), keep the existing self-host/orchestrator steps under a dedicated section below. * docs: regroup sidebar into outcome-based clusters Rename tabs "Cloud docs" → "Cloud" and "Cloud API" → "API" for shorter, clearer labels. Replace the generic "Desktop App" and "Tutorials" groups in Start here with two outcome-based clusters: "Connect your stack" (providers, MCPs, search) and "Do work with it" (browser, automations, skills, sharing). Reorganize the flat Cloud list into three clusters that map to real admin questions: "Share with your team" (templates, skill hubs, providers), "Run in the cloud" (shared workspaces, Slack), and "Manage access" (members & RBAC). Enterprise stays at the tail as a standalone contact-sales page. Slack moves from Start here to Cloud "Run in the cloud" since the Slack setup doc itself recommends pairing Slack with a remote workspace. * docs: surface changelog and roadmap on the intro Add a one-liner in the developers section pointing to the changelog and roadmap, and include both in the footer links. Developers evaluating the project want to see shipping velocity and direction. * docs(self-host): add dedicated self-host page with cloud/enterprise upsells Extract the openwork-orchestrator install steps out of the intro into a dedicated Self-host page. Keeps the intro short and gives self-hosters a direct, linkable entry point. The page includes two upsell paths: - Cloud, for readers who realize mid-read they don't want to run infra. Links into the team primitives (skill hubs, providers, RBAC, shared workspaces) that are hardest to replicate on your own box. - Enterprise, framed around concrete scale pressures (SSO, audit, allowlists, VPC, support) rather than a generic 'talk to sales' pitch. Links to the existing cloud-enterprise contact page. Add the page to the Start here tab as a top-level sibling of the intro so self-hosters find it immediately. * docs: move self-host below the outcome clusters Self-hosting is what people reach for after they've installed the desktop app and tried the basic flow, not before. Move it below "Connect your stack" and "Do work with it" so the sidebar reflects that progression. * docs: rename intro page title to "Introduction" "OpenWork" as a sidebar label is tautological — every page is about OpenWork. "Introduction" tells the reader what the page is, which is what a sidebar label is for. The in-page hero copy still carries the positioning. * docs: rewrite page titles as actions Sidebar labels should describe what the reader wants to do, not what the page is. Rename every page title to start with (or imply) a verb: - Introduction → Get started - How to connect ChatGPT to Openwork → Connect ChatGPT - How to get an Anthropic API key → Connect Anthropic - Adding a custom LLM provider/model → Connect a custom LLM - Adding a custom MCP → Add an MCP server - Enable Advanced Search with Exa → Enable Exa search - Controlling your browser with OpenWork → Control the browser - Automating Tasks → Automate tasks - Importing a skill → Import a skill - How to share your agents with others → Share your setup - Self-host OpenWork → Self-host - Missing Documentation? → Report missing docs Makes the sidebar scannable by intent: each label is a thing the reader is trying to accomplish. * docs: restore precision in provider titles "Connect X" flattened two different setup flows into one label. Readers scanning the sidebar need to know what they'll do before clicking: - Sign in with ChatGPT (OAuth, no key needed) - Add Anthropic API key (paste a secret from Anthropic) - Add a custom LLM (config, not auth) MCP and Exa labels already carry their own distinct verbs and are left unchanged. * docs: turn missing-docs into a question with two paths "Missing docs?" as a question invites the click. Inside, offer both the low-effort path (email us) and the contributor path (open a PR against the docs folder). Drops the "A message from the Openwork Developers" preamble, which was noise. * docs: reorganize into tab folders, rename files to match titles Mirrors the tab/group structure in docs.json so files are easier to locate. Filenames now track page titles (prefixes like how-to- and cloud- dropped since folders provide that context). Single-page groups stay flat at the tab root; roadmap and changelog remain at repo root as their own tabs. Cross-links in mdx files and docs.json redirects updated for the new paths. * docs: add roadmap/changelog folders, rename images, deprecate unused assets Moves roadmap.mdx and changelog.mdx into their own tab folders for consistency with the rest of the reorg, and removes the orphaned introduction.mdx. Renames CleanShot/Screenshot/image-* files to descriptive names based on content and updates the corresponding alt text. Unused images and a stray .mov land in images/deprecated/ rather than being deleted. docs.json gains /roadmap and /changelog redirects so old inbound URLs still resolve. * more clear get starter docs * docs: render get-started paths as Mintlify cards * no need to have the same title twice * edits * more concise | 6 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
Fix/changelog (#1361) * minor improvement changelog * test to see if mintlify renders gifs * test to see if mintlify renders gifs2 * gifs side by side * minimal * march 13th * march 15th * simpler changelog * simplified changelog * mintlify fix * changelog fix * correct filename * mp4 to gif * simplifying * weird bug tracking | 6 个月前 | |
docs: swap Ollama example for Infron LLM gateway in custom LLM provider doc (#1477) * docs: swap Ollama functional example for Infron LLM gateway Introduces the LLM gateway concept (single OpenAI-compatible endpoint, unified billing, fallbacks), replaces the Ollama walkthrough with an Infron config, and links out to Infron's signup + quickstart per their reciprocal doc in their OpenWork page. * docs: frame Infron as hosted gateway vs LiteLLM starting point Link to Infron's LiteLLM integration page as the canonical open-source gateway reference, and position Infron as the OpenRouter-style hosted gateway that sits on top: one key, unified billing, provider fallbacks. * docs: drop OpenRouter comparison, pitch Infron directly for dev ergonomics * docs: drop em dashes, loosen Infron pitch to devrel voice * docs: add Infron model picker + active session screenshots | 6 个月前 | |
docs: swap Ollama example for Infron LLM gateway in custom LLM provider doc (#1477) * docs: swap Ollama functional example for Infron LLM gateway Introduces the LLM gateway concept (single OpenAI-compatible endpoint, unified billing, fallbacks), replaces the Ollama walkthrough with an Infron config, and links out to Infron's signup + quickstart per their reciprocal doc in their OpenWork page. * docs: frame Infron as hosted gateway vs LiteLLM starting point Link to Infron's LiteLLM integration page as the canonical open-source gateway reference, and position Infron as the OpenRouter-style hosted gateway that sits on top: one key, unified billing, provider fallbacks. * docs: drop OpenRouter comparison, pitch Infron directly for dev ergonomics * docs: drop em dashes, loosen Infron pitch to devrel voice * docs: add Infron model picker + active session screenshots | 6 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
ollama mini edits (#1408) * ollama mini edits * ollama llama | 6 个月前 | |
ollama mini edits (#1408) * ollama mini edits * ollama llama | 6 个月前 | |
docs: clarify OpenCode and OpenWork models (#4013) | 2 个月前 | |
docs: clarify OpenCode and OpenWork models (#4013) | 2 个月前 | |
docs: add anthropic api key setup tutorial (#1390) * docs: add anthropic api key setup tutorial Guide users through manual Anthropic API key creation now that Anthropic uses direct key entry in OpenWork. Include screenshot placeholders for the Anthropic console flow so support docs can be illustrated later. * screenshots re-anthropic * correct image render | 6 个月前 | |
feat(website): refresh branding and social previews (#5027) | 1 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
docs: current-UI screenshots for skill creation, Library, MCP Apps, and OpenWork Web + gated docs-shots pipeline (#3971) * chore: remove screenshot playbook skills (agent-first-screenshots, cloud-dashboard-walkthrough, product-tutorial-pipeline) * feat(evals): add docs-shots — a gated, regenerable docs screenshot pipeline Recomposes the app-driver packages (@openwork/hosts, @openwork/behaviors, @openwork/cdp) plus testkit's local Den/witness bring-up into declarative scenes. Each scene drives the real app to a target screen and a capture loop re-shoots until required/forbidden text, route, and DOM gates pass on two stable frames, then writes the PNG into packages/docs/images. Run: node evals/docs-shots/run.ts [scene...] (Node 24, MySQL+Redis via pnpm dev:den:mysql). * docs: add current-UI screenshots for skill creation, Library, MCP Gateway apps, and OpenWork Web (closes #3959) All images are generated by evals/docs-shots against the real product: seeded local Den org (Acme Robotics), real desktop app via CDP with a deterministic model witness, headless Chrome for Den web and OpenWork Web. - create-a-skill-from-chat: chat skill-created MCP App card, Library > Skills > Add skill, Create a skill modal, Cloud plugin detail + skill editor - add-an-mcp-server / connect-slack-mcp: replace Extensions-era images with the current Library UI and align step wording with the real controls (Advanced settings > Add workspace MCP, OAuth on this device) - cloud-mcp: MCP App rendering in the desktop app - open-cloud-in-browser: dashboard OpenWork Web page + OpenWork Web in a browser tab | 2 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 | |
renamed images and deleted unused one's (#1152) | 7 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 12 天前 | ||
| 7 天前 | ||
| 3 个月前 | ||
| 3 个月前 | ||
| 9 天前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 14 天前 | ||
| 14 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 4 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 7 个月前 | ||
| 7 个月前 | ||
| 7 个月前 |