Other formats agents might prefer:
markdownjsonllms.txt

Agent? You probably want markdown or json, or Pod over MCP.

Reported issues for ae-mcp

Pod holds 24 of 160 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.

Back to ae-mcp.

Most discussed

epic(native-sdk): build the AE AEGP execution plane and capability set

Confirmed scope

Here, AE SDK means the compiled Adobe After Effects C/C++ Plug-in SDK: AEGP/general plug-ins and, where appropriate, Effect/IO/GPU suites. It does not mean CEP/HTML5 Panel SDK, ExtendScript, JSX, or a typed MCP schema whose implementation still renders JSX.

The CC 2015 Panel SDK remains relevant to the UI layer only. The 2018 SensorManager SDK is MGJSON-specific and is not a general AE project-control API.

Product principle

AEGP is a means to obtain a higher cap

Read the thread · 2026-07-13 · closed · 47 comments

epic(macos): deliver production-ready macOS support in auditable phases

Outcome

Deliver production-ready macOS support without treating it as one undifferentiated change. Work must proceed through independently testable phases with explicit exit criteria and linked child issues after the current-state audit.

Phase breakdown

Phase 0 — Current-state audit and support contract

  • Inventory what is already implemented on current main versus stubs, Windows assumptions, or unverified paths.
  • Freeze supported macOS versions, CPU architectures, After Effects

Read the thread · 2026-07-13 · open · 8 comments

feat(native): add Layer Transform Editing capability package

Parent / priority

  • Parent Epic: #61
  • Depends on: #162 / PR #163 clean-main closure and #164 workflow-rule closure
  • Priority: P1 — next user-visible native editing package
  • Baseline: 1f322375bdb8754b70cf5a128074f5d5b02743b4
  • Delivery unit: one branch/worktree, one PR, one candidate T5, one clean-main T6

User outcome

Let models read and edit the transform fields used in nearly every After Effects layout/animation task without discovering paginated property locators, supplying SDK m

Read the thread · 2026-07-22 · closed · 7 comments

arch: 把 MCP server 手写进 CEP Node 上下文,消掉环形依赖与双运行时

方向背景:docs/ARCHITECTURE_DIRECTION.md §6.2 + Phase 1

目标

把 MCP server 从独立 Python 进程搬进 CEP 面板的 Node 上下文,消掉环形调用链。

现状是环:面板 spawn agent → agent 走 MCP → Python 进程 → HTTP 打回面板 :11488。 目标是线:面板内 /mcp ← agent CLI 子进程直连;/mcp/exec/native/* 同进程。

一次性解决:环形依赖、双运行时(Node + Python)、打包闭合(plugin/shared 缺件类事故)、AE_MCP_PLUGIN_URL 单点绑定、一次对话两份 ae-mcp 子进程。

硬约束:必须手写,不能用官方 SDK

plugin/host/cep-runtime-compat.js:3-5 已写明:CEP 11(AE 2023/2024)是 **Node

Read the thread · 2026-08-15 · closed · 6 comments

panel(windows): ZXP 缺少 runtime/windows-x64/node/sidecar 载荷,Claude 侧车必然 ENOENT——api 通道聊天在 Windows 上结构性不可用

实证(2026-08-12,Windows 11 x64,全新安装 v0.9.5 ZXP + AEX)

Claude 通用 Provider(api 通道)发消息,聊天区永远只有一句 Provider sidecar request failed.,日志导出里 sidecar stderr 段是 [provider-sidecar-stderr-redacted](见 #233)。进程表里从来没有出现过 agent-sidecar 进程

根因:Windows 生产路径指向一个 ZXP 里不存在的文件

client/dist/app.js(安装后的 0.9.5 bundle,行号为该文件)resolveSidecarPath

// app.js:40531-40548
const developmentMarker     = join([root, ".debug"]);
const developmentSidecar    = join([root, "sidecar", "agent-sidecar.mjs"]);

[Read the thread](https://github.com/JUNKDOGE-JOE/after-effects-mcp/issues/239) · 2026-08-12 · closed · 6 comments

### feat(native-tools): add bounded AEGP layer property stream inspection

Parent epic: #77\nDepends on: #99\nPriority: P0 native capability path\n\n## Goal\n\nAdd one real, bounded layer property/stream inspection capability backed by verified After Effects C/C++ AEGP suites and exposed through the public MCP surface. This slice must make useful native AE state discoverable to an AI without evalScript or silent JSX fallback.\n\n## Scope\n\n- Audit the fixed After Effects SDK 25.6.61 suites before locking the contract.\n- Reuse the opaque project, composition, and laye

[Read the thread](https://github.com/JUNKDOGE-JOE/after-effects-mcp/issues/101) · 2026-07-15 · closed · 6 comments

### feat(native-tools): ship the first macOS read-only AEGP capability slice

Parent epic: #61

## Outcome

The first **macOS arm64** read-only AEGP capability slice is complete. This issue is now deliberately scoped to the platform and capability slices that were actually built and accepted; it is not a permanent catch-all for future tools.

The public path proven by the slices is:

```text
public MCP -> Core -> native RPC -> AEGP main-thread dispatcher -> real AE state
           -> typed native-aegp result -> audit/postcondition evidence

Completed slices

  • [x]

Read the thread · 2026-07-13 · closed · 5 comments

Feature plan: Tools library panel for generated scripts, skills, and expressions

背景

需要在面板下方栏新增一个 Tools 列,用于管理 agent 在执行历史中产生的脚本、skill、表达式等可复用资产。所有保存后的 tools 应在插件启动时通过统一入口逐层暴露给模型,避免模型每次凭记忆重写脚本或一次性加载过多模板。

Provider 请求头 / wire API 兼容性独立跟进在 #49,本 issue 只讨论 Tools 管理与模型暴露入口。

当前基础

  • 底部 tab 当前在 plugin/panel/src/app/App.jsx:818,只有 chat / activity / settings
  • Activity tab 在 plugin/panel/src/screens/ActivityScreen.jsx:54
  • Activity 订阅在 plugin/panel/src/cep/useActivity.js:3,目前主要保留最近事件,不是持久资产库。
  • 已有 skill CRUD:packages/core/ae_mcp/handlers/skills.py:114:118

Read the thread · 2026-07-07 · closed · 5 comments

Most recent

tool-library: 新增 ae_toolSave——创建/沉淀/更新/状态管理,库首个写动词(12→13)

背景

JS host 中 Tool Library 是只读的:saveArtifact 全仓库零生产调用方(只有测试在调),12 工具面上只有 ae_toolSearch / ae_toolUse / ae_skillUse 三个读・跑动词。创建、沉淀、更新、归档——一个写动词都不存在。本 issue 补上库的首个写动词。

任务

  • 新增 ae_toolSave(工具面 12→13),三种用法:
    • 沉淀name 传 candidate id,status→saved,可同时改 name / description / tags;
    • 新建:直接给 kind / content / argsSchema / name / description;
    • 更新:对已有条目改内容或元数据,revision+1,contentHash 随之变化。
  • 状态管理并入同一动词:status 参数支持 saved / pinned / archived / deprecated(避免动词爆炸)
  • [ ]

Read the thread · 2026-08-27 · closed · 0 comments

docs: v0.10.5 全量文档更新——过时归档、路线图/开发者文档对齐(功能开发收尾后执行)

背景

v0.10.5 落完后工具面 12→13、信封新增 artifactId、Tool Library 子系统成型——文档面需要一次全量对齐,而不是零散补丁。同时 docs/ 里积累了过时内容需要归档。

执行时点:本版全部功能 issue 关闭后、发版前,作为收尾单执行。

任务

  • docs/ 全量盘点:过时文档归档(移入 docs/archive/ 或删除,git 历史保留),主导航不再出现归档内容
  • 路线图刷新:ARCHITECTURE_DIRECTION.md 及相关 phase/规划文档对齐本版决策(库子系统成型、占位符死循环根治、身份戳等已裁决不做项)
  • 开发者文档:13 工具动词表、capture→replay→save 工作流、artifactId 信封字段、ae_toolSave 契约、candidate 生命周期(保留 20/TTL 7 天)、分发(导出/导入/bundled)机制
  • README(中英)与 INSTALL 对齐:工具数、动词表、接入口径(npx 连接器 / /mcp 直连

Read the thread · 2026-08-27 · closed · 0 comments

tool-library: 采用与度量——工作流指引接线、lastUsedAt/useCount 落地、使用漏斗可诊断

背景

建成≠会用。实证两条:历史 candidates 自 7 月入库以来没有被任何会话搜索或重放过;lastUsedAt 字段有定义、有校验、有展示——但全仓库没有任何代码写它,ae_toolUse 跑完工具不留痕。没有引导和度量,库建完就是吃灰。

任务

  • ae_toolUse / ae_skillUse 执行后更新 lastUsedAt,新增 useCount
  • instructions 与内置 ae-execution-guide 增加路径指引:重复性操作先 ae_toolSearch → 命中即 ae_toolUse → 值得留的 ae_toolSave
  • ae_toolSearch / ae_toolUse / ae_toolSave 的 description 重写为工作流导向(description 是模型唯一的常驻感知面,现在只解释机制、不推销工作流)
  • 活动日志/诊断导出能回答"捕获→重放→沉淀"漏斗:多少 candidate 被重放、多少被沉淀、多少 saved

Read the thread · 2026-08-27 · closed · 0 comments

tool-library: 分发与面板库管理页——导出/导入、bundled 清单生成入口

背景

库的分发通道现状:产品级 bundled 签名清单(构建期)是唯一渠道;无导出/导入;面板没有任何库管理界面。artifact 模型已预留 source:"imported",从未被使用。

任务

  • 导出:saved/pinned 工具导出为自包含 JSON(含 contentHash、schemaVersion)
  • 导入:source=imported、verified=false;进库前 assertSecretFree + 审批;contentHash 校验
  • bundled 入口:构建脚本支持从本机 saved 工具生成 skills_bundled 清单条目(签名流程维持现状)
  • 面板库管理页:candidates / saved 两个列表;收藏(沉淀)、归档、删除、导入导出、一键清空 candidates;展示使用统计(数据来自同批"采用与度量"issue)

验收

  • 导出 → 另一环境导入 → 审批 → 可跑,全链真机过;
  • 面板操作真机过;host/pa

Read the thread · 2026-08-27 · closed · 0 comments

tool-library: 用户 skill 统一进库——ae_toolSave(kind=prompt-skill)、ae_skillUse 列表纳入

背景

用户 skill 目前只能手放 JSON 文件进 ~/.ae-mcp/skills(legacy wire 格式),没有任何创建工具;bundled skill 走签名清单只读。skill 的创建/保存应与工具库统一走 ae_toolSave

任务

  • ae_toolSave 支持 kind=prompt-skill,落用户库(与 legacy 目录兼容读,不做迁移)
  • ae_skillUse 列表纳入用户新建的 skill;明确并写死重名规则(现状 listSkills() 为 user 覆盖 bundled,保持并在文档注释里写明)
  • 明确两个 kind 的生命周期差异:jsx 有 candidate→saved 沉淀链,prompt-skill 直接创建;在开发者文档/注释中写清
  • bundled 维持签名清单只读,不受本 issue 影响

验收

  • 真机创建一个用户 skill → ae_skillUse 列表可见、可渲染、可执行;host 套件绿。

关联

同批 `ae_

Read the thread · 2026-08-27 · closed · 0 comments

host: ae_exec 成功脚本自动入库 candidate——信封回 artifactId、守卫列可重放条目、会话保留 20/TTL 7 天

背景

0.10.3 的 #323 把"占位符当代码回放"拦下来了,但只有拦截、没有出路:2026-08-27 实测单会话 13+ 连拒——上下文压缩后模型手里只剩占位符,守卫要求"从头重写"一段已丢失的 11K 生成物,模型唯一可做的动作只剩重试,死循环是结构必然。

Python 时代本有解法:成功的 ae.exec 自动捕获进 Tool Library(~/.ae-mcp/tools 里仍留有 status:"candidate"sourceType:"chat-tool-call"description:"Captured from a successful MCP tool call." 的历史工件,最后一条 2026-08-02)。JS 重写时该链路遗失:现在 host 中 candidate/chat-tool-call 仅剩常量定义,全仓库无任何写入方。本 issue 是把它接回来并补齐当年缺的配套。

任务

  • ae_exec / ae_execRecover 成功后自动入库:kind=jsx、status=c

Read the thread · 2026-08-27 · closed · 0 comments

skills: 内置 Skill 持续优化(内容迭代 / 触发命中 / typed-verb 待定项 / 使用度量)

背景

宿主内置 8 个 bundled skill(plugin/host/mcp/skills_bundled/):ae-execution-guideextendscript-cookbook,加 6 个创作类(kinetic-typography / ease-and-timing / grade-stack / render-order / project-organization / glow-recipes),经 ae_skillList / ae_skillUse 暴露,AE_MCP_EXPERT_GUIDANCE 默认开。owner 意向:下个版本继续优化一轮。

候选方向(具体范围待 owner 圈定排序,可拆子任务)

  1. 内容迭代:按真实会话回放补盲区——高频 ExtendScript 报错沉淀进 extendscript-cookbook;创作类技能补配方、参数手感与更多风格变体。
  2. 触发与发现性:优化各 skill 的 description / 触发词,让模型在正确时机

Read the thread · 2026-08-26 · open · 0 comments

panel: 「文档 / GitHub」按钮真机点击无反应;接通后按语言路由到正式文档(中文→飞书,英文→Notion/GitHub 托管)

现状(2026-08-26 于 main 核实)

  • 设置页「关于」区有两个按钮:文档 / GitHubplugin/panel/src/screens/SettingsScreen.jsx:487-488)。
  • 源码里 onClick 已接 openExternal():优先 window.cep.util.openURLInDefaultBrowser,回落 window.open(同文件 21–29 行)。
  • 但真机 CEP 面板里两个按钮自始至终点击无任何反应——两层调用都在 try/catch 里被静默吞掉,无日志无提示。
  • 目标 URL 也只是占位:DOCS_URL = 仓库 README 锚点(#readme),并无正式文档;REPO_URL = 仓库首页。
  • 另:同文件 245 行还有一处 <a target="_blank">client.docsUrl),在 CEF 里同样不可靠,应一并收敛到修好的打开函数。

待做

  1. 修通外链打开:排查 CEP 环境里 `cep.u

Read the thread · 2026-08-26 · closed · 0 comments

opencode: 常驻实例在宿主重启后抱着死 MCP 连接——ae 工具报 -32000 后整组静默消失,永不重连

现象(测试机实录,面板内会话)

  1. 会话内首次调用 ae_statusMCP error -32000: Connection closed;紧接着 ae_readNot connected;
  2. 此后 ae 工具从会话的工具列表整组消失,模型只剩内建工具,开始用 bash/curl 乱撞(还把 /mcp 握手 404 等误导性结果当线索);
  3. 期间宿主实际健康:AE 开着、11488 有 CEPHtmlEngine 监听、host 日志有当日 Host ready;
  4. 用户无从知晓发生了什么,也没有任何可见的恢复指引。

机制(代码核实)

  • 面板给 opencode 写配置时注入 { type: 'remote', url: <host>/mcp }(openCodeBackend.js writeConfig ~L896),并按设计跨回合/跨面板重载复用常驻 opencode 实例(instance marker + alive 探测,#286 修复引入);
  • CEP 宿主一旦重启(面板重载、AE

Read the thread · 2026-08-26 · closed · 1 comment

test(host): 集成测试读写用户真实 ~/.ae-mcp 状态,本机状态可让套件必败

现象

发版 v0.10.3 前本机跑 plugin/host 套件,server-integration.test.js 的 MCP ae_exec 集成用例三连必败:initialize 不返回 Mcp-Session-Id。同一装配的直连探针却全通。

根因

用户真实状态文件 ~/.ae-mcp/blocked-clients.json 里存着 ["mcp-exec-integration"]——恰是该测试的 clientInfo.name(推测为早前测试面板拉黑功能时的残留)。宿主测试 fixture 直接 require 真实 server.js,client-blocklist 读的是真实用户目录 → initialize 被 CLIENT_BLOCKED 拒绝。CI 无恙(干净 home),只在开发机上踩雷,且极难排查(报错形态是 header undefined 的 TypeError,与黑名单毫无表面关联)。

风险

  • 本机任何面板操作留下的状态(黑名单、migrations、checkpoints)都可能让测试套件

Read the thread · 2026-08-26 · closed · 0 comments

panel(opencode): 内建工具被误标为 mcp__ae__ 前缀,干扰事故还原

现象

OpenCode 通道的会话里,OpenCode 自带的内建工具在面板 UI 与导出转录中被显示为我们的 MCP 工具:

  • apply_patch → 显示为 mcp__ae__apply_patch
  • read → 显示为 mcp__ae__read
  • todowrite → 显示为 mcp__ae__todowrite

真实的 ae 工具(ae_ae_execRecovermcp__ae__ae_execRecover)与这些假前缀混在一起,排障时会把"模型在改本地文件"误读成"模型在调 ae-mcp 工具",严重干扰事故还原(0825 滚动数字会话转录实测)。

根因

openCodeBackend.js:139 prefixedToolName()一切不以 mcp__ 开头的名字无条件冠 mcp__ae__ 前缀:

if (text.startsWith('mcp__')) re

[Read the thread](https://github.com/JUNKDOGE-JOE/after-effects-mcp/issues/324) · 2026-08-25 · closed · 0 comments

### fix(opencode): 流式文本被工具/问题事件截断并发生显示顺序错乱

## 环境

- Windows x64
- After Effects 2026 v26.3
- ae-mcp v0.10.2
- OpenCode CLI v1.18.22
- OpenCode Provider 通道

## 现象

OpenCode 在流式回复期间调用工具并弹出问题卡时:

1. 工具状态会插入助手正文中间。
2. 同一段文字会在任意字符位置断开。
3. 用户已经回答问题后,问题之前应当显示的文字才继续出现。
4. UI 仍可能显示“等待模型回复”。

实际会话中,同一个单词被拆开:

- `ai-text :15` 结尾:`globalA`
- `question :16`:状态已经是 `answered`
- `ai-text :17` 开头:`lpha 0.7 ... 两件事需要你拍板`

因此最终显示顺序变成:

```text
globalA
[问题卡:已回答]
lpha 0.7 ... 两件事需要你拍板

可能根因

createDeltaRedactor() 会根据敏感值长度保留一段尾部缓冲。

OpenCode 的 `messa

Read the thread · 2026-08-25 · closed · external user · 1 comment

feat(windows): ZXP 至少内置 OpenCode,并让“重新检测”无需重启 AE

问题

在 Windows x64 + After Effects 2026 v26.3 上安装 v0.10.2 ZXP/AEX 后,面板虽然提供 Claude Code、Codex CLI、OpenCode 三个通道,但全新环境中可能一个都不可用,首次配置成本较高。

实际遇到的流程:

  • Claude Code 安装到 %USERPROFILE%\.local\bin\claude.exe 后,还需要用户手动修改 PATH。
  • OpenCode 官网首先给出的是 curl ... | bash,无法直接在原生 PowerShell/CMD 中使用;改用 Chocolatey/Scoop/npm 又要求用户预先安装额外工具。
  • 安装 CLI 或修改用户 PATH 后,面板点击“重新检测”仍检测不到新环境;必须完全退出并重新启动 After Effects 后才能识别。

最后一点可能是因为 CEP/After Effects 进程一直使用启动时继承的旧环境变量,而“重新检测”只读取了当前进程的 process.env.PATH

建议

  1. **ZX

Read the thread · 2026-08-25 · closed · external user · 0 comments

panel: 子进程 stdout 未设 utf8,中文在 chunk 边界被静默腐蚀

现象

面板 spawn 的 CLI(claude / codex / opencode)的 stdout 流从未调用 setEncoding('utf8'),NDJSON 拼接直接对 Buffer 做字符串拼接。当一个多字节 UTF-8 字符恰好横跨两个 chunk 边界时,字符被腐蚀成替换字符。

对中文场景影响直接——本仓的典型用法就是中文提示词与中文图层文本。

根因

plugin/panel/src/lib/ndjson.js:9

return function push(chunk) {
  buffer += String(chunk || '');   // Buffer -> string,按 chunk 边界独立解码
  ...

plugin/panel/src/cep/claudeAgentBackend.js:1107 挂的是原始流:

spawnedProc.stdout?.on?.('data', reader);

全仓 grep setEncoding,只有 `plu

Read the thread · 2026-08-22 · closed · 0 comments

exec: ae_exec.recoveryId 有 pattern 无描述诱导模型编造,且该字段一旦存在就吞掉 code

现象

两个不同模型族kimi-k3gpt-5.6-luna)在各自独立的会话里犯了完全相同的错误:往 ae_exec 塞进凭空编造的 recoveryId,导致整次调用白跑。

[tool] mcp__ae__ae_exec -> {"ok":false,"error":"unknown recoveryId: 5x5x5x"}
[tool] mcp__ae__ae_exec -> {"ok":false,"error":"unknown recoveryId: 000000"}

同批次里 ae_read 也连续两次被传空的 comp.id

[tool] mcp__ae__ae_read -> {"ok":false,"error":"`comp.id` must be a non-empty string"}
[tool] mcp__ae__ae_read -> {"ok":false,"error":"`comp.id` must be a non-empty string"}

两个模型族独立犯

Read the thread · 2026-08-22 · closed · 0 comments

panel(opencode): 上游 socket 中断的真因被吞成 Failed to process error response,且流断无重试导致会话永久报废

现象

opencode 通道每轮都以同一条毫无信息量的错误收场,且一旦发生,整个会话永久报废——之后每次「继续」都在几十到几百毫秒内立刻再次失败。

面板显示与落盘记录都只有:

{"code":"UPSTREAM_ERROR","kind":"model",
 "message":"Failed to process error response",
 "detail":{"errorName":"APIError"}}

真因被吞掉了

真正的原因写在 opencode 自己的日志里(~/.local/share/opencode/log/opencode.log):

AI_APICallError: Failed to process error response
(cause: Error: The socket connection was closed unexpectedly.
        For more information, pass `verbose: true` in the second arg

[Read the thread](https://github.com/JUNKDOGE-JOE/after-effects-mcp/issues/316) · 2026-08-22 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/JUNKDOGE-JOE/after-effects-mcp/issues).