From f9c4de69ca0c7c7c34b88cd077f65204f5458e34 Mon Sep 17 00:00:00 2001 From: Edgar Durand Date: Fri, 6 Nov 2026 09:40:55 -0300 Subject: [PATCH 1/5] =?UTF-8?q?chore(plugin):=20OpenAI=20plugin=201.1.0=20?= =?UTF-8?q?=E2=80=94=20Remix=20first,=20build-and-remix-apps=20skill?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- plugin/openai/.codex-plugin/plugin.json | 20 +++++++------ plugin/openai/README.md | 2 +- plugin/openai/SUBMISSION.md | 10 +++++++ plugin/openai/plugin.json | 20 +++++++------ .../skills/build-and-remix-apps/SKILL.md | 29 +++++++++++++++++++ 5 files changed, 62 insertions(+), 19 deletions(-) create mode 100644 plugin/openai/skills/build-and-remix-apps/SKILL.md diff --git a/plugin/openai/.codex-plugin/plugin.json b/plugin/openai/.codex-plugin/plugin.json index 2d4753ba..43ed7c43 100644 --- a/plugin/openai/.codex-plugin/plugin.json +++ b/plugin/openai/.codex-plugin/plugin.json @@ -1,8 +1,8 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "codeagent-mobile", - "version": "1.0.0", - "description": "Start, supervise and review your AI coding agents from a conversation.", + "version": "1.1.0", + "description": "Build and remix live apps by describing them, and start, supervise and review your AI coding agents from a conversation.", "author": { "name": "CodeAgent Mobile", "email": "support@codeagent-mobile.com", @@ -12,19 +12,21 @@ "repository": "https://github.com/CodeAgentMobile/codeagent-mobile-clients", "license": "MIT", "keywords": [ + "app builder", + "live apps", + "remix", "coding agents", "ai agents", "developer tools", "pull requests", - "code review", - "mobile" + "code review" ], "extensions": { "com.openai": { "interface": { "displayName": "CodeAgent Mobile", - "shortDescription": "Supervise your coding agents", - "longDescription": "CodeAgent Mobile lets you start, monitor, redirect and review long-running AI coding agents without leaving the conversation.\n\nConnect your CodeAgent account and ask for your sessions, send a task or a new instruction to an agent, answer the questions it asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep supervising from the CodeAgent Mobile app.\n\nWorks with the coding agents you already link in your CodeAgent account. Switching a session to another agent always asks for your confirmation first.\n\nRequires a CodeAgent Mobile account with at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", + "shortDescription": "Build live apps, run AI agents", + "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and its price, and your first app is free. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises your AI coding agents (Claude Code, Codex, Cursor, Gemini and more) in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation of the price, and switching a session to another agent always asks first.\n\nBuilding apps needs only a free CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", "developerName": "CodeAgent Mobile", "category": "Developer Tools", "capabilities": [ @@ -36,9 +38,9 @@ "privacyPolicyURL": "https://www.codeagent-mobile.com/privacy", "termsOfServiceURL": "https://www.codeagent-mobile.com/terms", "defaultPrompt": [ - "Show me my running CodeAgent sessions", - "What has the agent changed so far?", - "Send this session to my phone" + "Build me a habit tracker with a weekly streak chart", + "Is there an app for splitting bills with friends?", + "Show me my running CodeAgent sessions" ], "brandColor": "#A855F7", "composerIcon": "./assets/composer-icon.png", diff --git a/plugin/openai/README.md b/plugin/openai/README.md index bb21b461..7256e0b3 100644 --- a/plugin/openai/README.md +++ b/plugin/openai/README.md @@ -3,7 +3,7 @@ The static plugin package that lists CodeAgent Mobile in the ChatGPT / Codex plugin directory. It carries no code — it's a manifest, an MCP server pointer, and a set of skills that teach the model how to use the already-live -`https://mcp.codeagent-mobile.com/mcp` gateway (13 tools: sessions, agents, +`https://mcp.codeagent-mobile.com/mcp` gateway (20 tools: Remix — find, quote, build and track apps — plus sessions, agents, wallet, diff, PR, mobile hand-off). ## Layout diff --git a/plugin/openai/SUBMISSION.md b/plugin/openai/SUBMISSION.md index 77cd3d7c..b042dad7 100644 --- a/plugin/openai/SUBMISSION.md +++ b/plugin/openai/SUBMISSION.md @@ -28,6 +28,16 @@ Optional extra positive case (use it if the portal accepts more than five, or sw |---|---|---|---|---| | 6 | Product question answered from CodeAgent's docs | What can the CodeAgent Mobile app do that I can't do from here? | `search_codeagent_help` | A short list of app-only capabilities (e.g. live Preview, voice, deploying a Box or codespace, Take Control) with links to the CodeAgent wiki. | + +Remix cases (1.1.0) — the review account has never built a Remix app, so its first build is free: + +| # | description | prompt | tools_triggered | expected_behavior | +|---|---|---|---|---| +| 7 | Find live apps | Is there an app for splitting bills with friends? | `find_apps` | Cards of live apps with poster, author and Open in the feed / Remix it buttons. | +| 8 | Price an app before building | Build me a habit tracker with daily check-ins and a weekly streak chart | `quote_app`, `get_quote` | A quote card shows what will be built and "Free — your first app" (or the price in remixes); nothing is built yet and the model asks to confirm. | +| 9 | Build after confirming | Yes, build it | `create_app`, `get_build_status` | The build starts only after the yes; the card shows its progress steps and ends with the app's link. | +| 10 | The user's apps | What apps have I made? | `get_my_apps` | The apps and builds in progress with their links. | + ## Negative test cases | # | description | prompt | diff --git a/plugin/openai/plugin.json b/plugin/openai/plugin.json index 2d4753ba..43ed7c43 100644 --- a/plugin/openai/plugin.json +++ b/plugin/openai/plugin.json @@ -1,8 +1,8 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "codeagent-mobile", - "version": "1.0.0", - "description": "Start, supervise and review your AI coding agents from a conversation.", + "version": "1.1.0", + "description": "Build and remix live apps by describing them, and start, supervise and review your AI coding agents from a conversation.", "author": { "name": "CodeAgent Mobile", "email": "support@codeagent-mobile.com", @@ -12,19 +12,21 @@ "repository": "https://github.com/CodeAgentMobile/codeagent-mobile-clients", "license": "MIT", "keywords": [ + "app builder", + "live apps", + "remix", "coding agents", "ai agents", "developer tools", "pull requests", - "code review", - "mobile" + "code review" ], "extensions": { "com.openai": { "interface": { "displayName": "CodeAgent Mobile", - "shortDescription": "Supervise your coding agents", - "longDescription": "CodeAgent Mobile lets you start, monitor, redirect and review long-running AI coding agents without leaving the conversation.\n\nConnect your CodeAgent account and ask for your sessions, send a task or a new instruction to an agent, answer the questions it asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep supervising from the CodeAgent Mobile app.\n\nWorks with the coding agents you already link in your CodeAgent account. Switching a session to another agent always asks for your confirmation first.\n\nRequires a CodeAgent Mobile account with at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", + "shortDescription": "Build live apps, run AI agents", + "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and its price, and your first app is free. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises your AI coding agents (Claude Code, Codex, Cursor, Gemini and more) in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation of the price, and switching a session to another agent always asks first.\n\nBuilding apps needs only a free CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", "developerName": "CodeAgent Mobile", "category": "Developer Tools", "capabilities": [ @@ -36,9 +38,9 @@ "privacyPolicyURL": "https://www.codeagent-mobile.com/privacy", "termsOfServiceURL": "https://www.codeagent-mobile.com/terms", "defaultPrompt": [ - "Show me my running CodeAgent sessions", - "What has the agent changed so far?", - "Send this session to my phone" + "Build me a habit tracker with a weekly streak chart", + "Is there an app for splitting bills with friends?", + "Show me my running CodeAgent sessions" ], "brandColor": "#A855F7", "composerIcon": "./assets/composer-icon.png", diff --git a/plugin/openai/skills/build-and-remix-apps/SKILL.md b/plugin/openai/skills/build-and-remix-apps/SKILL.md new file mode 100644 index 00000000..1fd564c2 --- /dev/null +++ b/plugin/openai/skills/build-and-remix-apps/SKILL.md @@ -0,0 +1,29 @@ +--- +name: build-and-remix-apps +description: Find live apps in CodeAgent Remix, and build a new app from the user's description — always showing the price and getting an explicit yes before the build starts. +--- + +# Build and remix apps + +Use this when the user wants an app ("build me…", "make an app that…", "I need a tool for…") or asks whether one exists ("is there an app for…", "show me apps that…"), or asks about the apps they made. + +## Find apps +1. Call `find_apps` with the user's words as the query. It needs no sign-in and shows cards with each app's poster, author and links. +2. Point the user at the card buttons: *Open in the feed* to use it, *Remix it* to make their own copy. Don't paste every link again in text; one short sentence is enough. +3. Nothing found → say so and offer to build it with `quote_app`. + +## Build an app — price first, always +1. Call `quote_app` with a self-contained `description` of the app in the user's words (screens, features, who uses it). Pass `kind` only if the user said "phone app" or "web app". +2. The quote card shows "Working out the price…" while CodeAgent plans the app (about a minute). If you need the result in text, call `get_quote` with the `quote_id`; it returns `pricing`, `ready` or `failed`. +3. When the quote is `ready`, tell the user in one or two lines what will be built and the price in remixes — or that **their first app is free** when `first_app_free` is true — and ask whether to go ahead. +4. Call `create_app` with the `quote_id` **only after the user clearly says yes** (or presses Confirm on the card). Never call it on your own initiative, never to "save time", and never with a quote the user hasn't seen. +5. `create_app` answers at once; the build takes a few minutes and the card shows its progress. If the user asks "is it ready?", call `get_build_status` with the `build_id`. +6. When it is done, give the app's link. Never say an app is ready before `get_build_status` (or the card) says `done`. + +## Errors +- `INSUFFICIENT_BALANCE`: say how many remixes it needs and share the wallet link from the error. The same `quote_id` works after they top up. +- `INVALID_ARGUMENT` with a `next_action`: the quote is still pricing (`get_quote`), expired or already used (`quote_app` again), or the daily quote limit was reached. Repeat the message in plain words and follow the `next_action`. +- A refusal (content not allowed) comes back with its own message: repeat it plainly, don't try to rephrase the request around it. + +## Their apps +Call `get_my_apps` for "what apps have I made?" or "what's building?". It lists ready apps and builds in progress with their links. From 15188993538fccf0c3b2193a4829e4ac346da448 Mon Sep 17 00:00:00 2001 From: Edgar Durand Date: Fri, 6 Nov 2026 09:45:13 -0300 Subject: [PATCH 2/5] chore(plugin): no prices or other assistants' names in the listing (portal findings) Co-Authored-By: Claude Opus 5.5 --- plugin/openai/.codex-plugin/plugin.json | 4 ++-- plugin/openai/plugin.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugin/openai/.codex-plugin/plugin.json b/plugin/openai/.codex-plugin/plugin.json index 43ed7c43..f40e3c3c 100644 --- a/plugin/openai/.codex-plugin/plugin.json +++ b/plugin/openai/.codex-plugin/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "codeagent-mobile", "version": "1.1.0", - "description": "Build and remix live apps by describing them, and start, supervise and review your AI coding agents from a conversation.", + "description": "Build and remix live apps by describing them, and start, supervise and review your coding agents from a conversation.", "author": { "name": "CodeAgent Mobile", "email": "support@codeagent-mobile.com", @@ -26,7 +26,7 @@ "interface": { "displayName": "CodeAgent Mobile", "shortDescription": "Build live apps, run AI agents", - "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and its price, and your first app is free. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises your AI coding agents (Claude Code, Codex, Cursor, Gemini and more) in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation of the price, and switching a session to another agent always asks first.\n\nBuilding apps needs only a free CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", + "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and confirm it. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises the coding agents linked to your CodeAgent account in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation, and switching a session to another agent always asks first.\n\nBuilding apps needs only a CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", "developerName": "CodeAgent Mobile", "category": "Developer Tools", "capabilities": [ diff --git a/plugin/openai/plugin.json b/plugin/openai/plugin.json index 43ed7c43..f40e3c3c 100644 --- a/plugin/openai/plugin.json +++ b/plugin/openai/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "codeagent-mobile", "version": "1.1.0", - "description": "Build and remix live apps by describing them, and start, supervise and review your AI coding agents from a conversation.", + "description": "Build and remix live apps by describing them, and start, supervise and review your coding agents from a conversation.", "author": { "name": "CodeAgent Mobile", "email": "support@codeagent-mobile.com", @@ -26,7 +26,7 @@ "interface": { "displayName": "CodeAgent Mobile", "shortDescription": "Build live apps, run AI agents", - "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and its price, and your first app is free. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises your AI coding agents (Claude Code, Codex, Cursor, Gemini and more) in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation of the price, and switching a session to another agent always asks first.\n\nBuilding apps needs only a free CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", + "longDescription": "Describe an app and CodeAgent builds it: a live web app, a shared app or a native phone app, ready to use and share by link. Before anything starts you see what will be built and confirm it. The build card shows its progress until the app is ready to open. You can also search CodeAgent Remix, a feed where every post is a live app, for apps other people made, and remix any of them by describing a change.\n\nFor developers, the same connection supervises the coding agents linked to your CodeAgent account in dedicated sessions: start a task or send a new instruction, answer the questions the agent asks, stop it, read the changes it made and open a pull request. Hand a session to your phone when you step away and keep going from the CodeAgent Mobile app.\n\nBuilding or remixing an app never starts without your confirmation, and switching a session to another agent always asks first.\n\nBuilding apps needs only a CodeAgent account. The coding-agent tools need at least one paired session (local CLI, GitHub Codespace, CodeAgent Box or self-hosted server).", "developerName": "CodeAgent Mobile", "category": "Developer Tools", "capabilities": [ From 3e46f3b8281af928bbe434435cb059ae13389b06 Mon Sep 17 00:00:00 2001 From: Edgar Durand Date: Fri, 6 Nov 2026 09:49:53 -0300 Subject: [PATCH 3/5] chore(plugin): skill never pitches plans or purchase links Co-Authored-By: Claude Opus 5.5 --- plugin/openai/skills/build-and-remix-apps/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/openai/skills/build-and-remix-apps/SKILL.md b/plugin/openai/skills/build-and-remix-apps/SKILL.md index 1fd564c2..6422f24d 100644 --- a/plugin/openai/skills/build-and-remix-apps/SKILL.md +++ b/plugin/openai/skills/build-and-remix-apps/SKILL.md @@ -21,7 +21,7 @@ Use this when the user wants an app ("build me…", "make an app that…", "I ne 6. When it is done, give the app's link. Never say an app is ready before `get_build_status` (or the card) says `done`. ## Errors -- `INSUFFICIENT_BALANCE`: say how many remixes it needs and share the wallet link from the error. The same `quote_id` works after they top up. +- `INSUFFICIENT_BALANCE`: say how many remixes it needs and that they can add more in their CodeAgent account; once they have, call `create_app` again with the same `quote_id`. Do not pitch plans or paste purchase links. - `INVALID_ARGUMENT` with a `next_action`: the quote is still pricing (`get_quote`), expired or already used (`quote_app` again), or the daily quote limit was reached. Repeat the message in plain words and follow the `next_action`. - A refusal (content not allowed) comes back with its own message: repeat it plainly, don't try to rephrase the request around it. From ec6a6fe209763279a1a315303d16994408f89164 Mon Sep 17 00:00:00 2001 From: Edgar Durand Date: Fri, 6 Nov 2026 09:50:05 -0300 Subject: [PATCH 4/5] chore(plugin): state the quote's cost plainly, never as a promotion Co-Authored-By: Claude Opus 5.5 --- plugin/openai/skills/build-and-remix-apps/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/openai/skills/build-and-remix-apps/SKILL.md b/plugin/openai/skills/build-and-remix-apps/SKILL.md index 6422f24d..d4fe7351 100644 --- a/plugin/openai/skills/build-and-remix-apps/SKILL.md +++ b/plugin/openai/skills/build-and-remix-apps/SKILL.md @@ -15,7 +15,7 @@ Use this when the user wants an app ("build me…", "make an app that…", "I ne ## Build an app — price first, always 1. Call `quote_app` with a self-contained `description` of the app in the user's words (screens, features, who uses it). Pass `kind` only if the user said "phone app" or "web app". 2. The quote card shows "Working out the price…" while CodeAgent plans the app (about a minute). If you need the result in text, call `get_quote` with the `quote_id`; it returns `pricing`, `ready` or `failed`. -3. When the quote is `ready`, tell the user in one or two lines what will be built and the price in remixes — or that **their first app is free** when `first_app_free` is true — and ask whether to go ahead. +3. When the quote is `ready`, tell the user in one or two lines what will be built and the cost the quote shows in remixes (when `first_app_free` is true it uses none), and ask whether to go ahead. State the cost plainly; never present it as an offer or promotion. 4. Call `create_app` with the `quote_id` **only after the user clearly says yes** (or presses Confirm on the card). Never call it on your own initiative, never to "save time", and never with a quote the user hasn't seen. 5. `create_app` answers at once; the build takes a few minutes and the card shows its progress. If the user asks "is it ready?", call `get_build_status` with the `build_id`. 6. When it is done, give the app's link. Never say an app is ready before `get_build_status` (or the card) says `done`. From 9faed5026312d825866ef8a2e9eefcb36cd720b7 Mon Sep 17 00:00:00 2001 From: Edgar Durand Date: Fri, 6 Nov 2026 10:24:40 -0300 Subject: [PATCH 5/5] test(plugin): the package ships five skills (build-and-remix-apps added in 1.1.0) The skill list is pinned on purpose; 1.1.0 adds build-and-remix-apps. Co-Authored-By: Claude Opus 5.5 --- apps/cli/__tests__/plugin-package.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/cli/__tests__/plugin-package.test.ts b/apps/cli/__tests__/plugin-package.test.ts index a53bafc6..a42965ee 100644 --- a/apps/cli/__tests__/plugin-package.test.ts +++ b/apps/cli/__tests__/plugin-package.test.ts @@ -31,7 +31,7 @@ describe('plugin/openai package', () => { }); it('every skill has frontmatter name/description and stays under 256 KiB', () => { const skills = fs.readdirSync(path.join(ROOT, 'skills')); - expect(skills.sort()).toEqual(['continue-with-codeagent-credits', 'review-agent-work', 'start-coding-task', 'supervise-session']); + expect(skills.sort()).toEqual(['build-and-remix-apps', 'continue-with-codeagent-credits', 'review-agent-work', 'start-coding-task', 'supervise-session']); for (const s of skills) { const md = read(`skills/${s}/SKILL.md`); expect(md.length).toBeLessThan(256 * 1024);