{"schema_version":"1.0","service":"Publicasta","type":"article","id":860,"slug":"spettro_open_source_terminal_agent_explicit_permissions","title":"Spettro 把编码代理工作流带进终端，也把权限变成产品的一部分","excerpt":"Spettro 是一款仍在早期阶段的 GPL-3.0 终端编码助手，强调可见的代理交接、审批闸门、模型供应商选择与操作系统级沙箱。它真正值得关注的地方，是让控制面变得可检查。","language":"zh","default_language":"en","canonical_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=zh","image":{"url":"https://publicasta.com/storage/projects/10/pages/860/2026/10/96929361-a018-4cf5-ad01-70e43641fbb2.webp","alt":"终端编程代理的编辑插图，展示可见的计划、审批、工具调用和权限边界。"},"publisher":{"id":10,"slug":"open_source_radar","name":"Open Source Radar","url":"https://publicasta.com/open_source_radar"},"author":{"name":"Anton R"},"published_at":"2026-10-12T06:48:37+00:00","updated_at":"2026-10-12T06:48:37+00:00","content_markdown":"Spettro 是一款刻意让工作流程保持可见的小型开源编码助手。它运行在终端中，将规划与实施分开，显示当前代理及权限模式，并保存足够的状态，以便稍后恢复任务。项目使用 Go 编写，采用 Bubble Tea 终端界面，按 GPL-3.0 发布。检查时，其代码仓库显示有 37 个 star 和 6 个 fork，最新标签版本为 2026 年 10 月 4 日发布的 v2.8.2。这些数字很重要：Spettro 仍是一个值得评估的早期项目，还不是可以直接支撑全公司开发流程的成熟基础设施。\n\n ![终端编程代理的编辑插图，展示可见的计划、审批、工具调用和权限边界。](https://publicasta.com/storage/projects/10/pages/860/2026/10/96929361-a018-4cf5-ad01-70e43641fbb2.webp)\n\n 因此，真正值得问的问题不是 Spettro 能否取代成熟的编码助手。它目前还无法证明这一点。更合适的问题是：它的设计是否让代理辅助开发更容易受到监督？在这个更窄的测试范围内，Spettro 有一套连贯的观点：代理应当在明确声明的项目边界内运行；执行工作前先提出方案；使用有名称、有职责的角色，而不是一个无所不包的巨大提示词；并留下开发者可以检查的工具调用轨迹。\n\n 这对开源项目来说是一个有价值的方向。许多编码代理都在竞争“一条指令能改多少代码”，而 Spettro 把更多产品界面放在变更之前以及变更周围。对于想研究代理控制、构建本地工作流，或参与一个年轻 Go 应用开发的开发者来说，它值得一试。同时，这种设计也带来一长串理由，要求你把实验隔离开来。\n\n ## Spettro 实际增加了什么\n\n 项目将自己描述为终端优先的多代理编码助手。这个说法听起来可能和越来越多的命令行工具没有区别，但 Spettro 的结构更具体。它的仓库提供代理清单、提示词文件、终端用户界面、供应商配置、工作流支持、持久会话、技能、记忆、钩子，以及一个用于编辑器集成的独立 ACP 模式。内置角色包括规划、编码、提问、探索、Git 操作、测试、评审和文档。\n\n 重要的单位不是某个单独角色，而是角色之间的交接。规划代理可以检查代码仓库并提出变更顺序；编码代理随后执行已经批准的计划；测试和评审角色可以在之后被调用。清单和提示词文件都直接放在仓库中，而不是藏在服务端的不可见配置里。这并不能保证输出正确，却给维护者留下了具体可读、可派生、可修改的材料。\n\n 默认交互也有意比单一聊天框更程序化。Spettro 要求用户信任一个项目文件夹，连接模型供应商，选择模型，然后从规划代理开始。README 记录了 `/plan`、`/approve`、`/permission`、`/models`、`/skills`、`/compact` 和 `/resume` 等命令。这套词汇说明了开发者预期的使用方式：会话是工作环境，计划是可以评审的对象，权限模式是任务的一部分，而不是隐藏在实现细节中的开关。\n\n 这带来实际好处。代理会话出问题时，原因通常不只是抽象意义上的“模型不够好”。更常见的情况是代理拥有过大的文件系统访问范围、任务没有被拆解、命令在错误目录运行、工具结果没有被检查，或者中断后的会话丢失了上下文。一个明确命名这些阶段的工作流，会给操作者留下更多可以停下来检查的位置。\n\n ## 权限才是它最重要的故事\n\n Spettro 最鲜明的开源特色，是试图把权限边界放到接近执行层的位置。其网站称，沙箱命令可以分别通过 macOS 上的 Seatbelt、Linux 上的 Landlock，以及 Windows 上的 Mandatory Integrity Control 进行限制。项目还记录了 `off`、`workspace-write` 和 `read-only` 等文件系统模式，以及 `all`、`localhost`、`none` 或明确端口列表等网络策略。\n\n 这些细节比笼统地承诺代理“安全”更有意义，因为它们描述了一个操作者可以检查的策略面。项目称，策略可以通过命令行标志或代理清单提供，并且模型无法检查或修改该策略。在编码代理场景中，这正是应该讨论的边界：语言模型可以建议一条 shell 命令，但宿主运行时应当决定这条命令是否能够访问某个文件、目录、设备或网络目的地。\n\n 使用本地模型或兼容 API 的服务时，这种区别尤其重要。供应商选择并不会消除执行风险。本地模型仍可能生成破坏性命令；托管模型仍可能误解代码仓库；一个小型开源运行时也可能在权限检查中存在缺陷。沙箱可以缩小影响范围，却不能证明每个工作流都安全。\n\n 因此，第一次测试最好刻意保持乏味：\n\n ```text\n1. 创建一个不包含凭据的临时仓库。\n2. 以只读或先询问模式启动 Spettro。\n3. 要求它只描述一个小变更的计划。\n4. 检查拟执行的工具调用和路径。\n5. 批准一个拥有明显测试且容易回滚的变更。\n6. 关闭网络访问后重复测试。\n```\n\n 不要一开始就把它指向主目录、生产代码检出目录、包含 SSH 密钥的目录，或能够访问部署凭据的仓库。项目暴露权限模式，正是测试这些模式的理由，而不是跳过测试的理由。\n\n ## 审批闸门有用，但不能代替评审\n\n 在更严格的模式下，Spettro 通过 `/approve` 步骤把规划与执行分开。这是一种好的交互模式，因为它让人在工具开始修改文件前，有机会检查拟议的范围。它也为团队加入自己的检查清单提供了自然位置：允许访问的目录、预期文件、要运行的测试、生成的产物，以及必须禁止的命令。\n\n 不过它有局限。计划过于宽泛或难以阅读时，审批很容易变成例行仪式。一行“更新认证流程并修复相关测试”的描述，即使得到批准，也不构成有意义的控制。有效计划需要限定文件集合，为每个变更说明原因，并给出验证步骤。Spettro 可以把工作流暴露出来，但工作流的质量仍取决于提示词、仓库指令以及围绕它形成的习惯。\n\n 自主目标模式也是如此。项目记录了 `/goal` 命令，运行时可以跨多个迭代继续工作、检测停滞、恢复进度，并在目标被标记为完成时停止。对于长任务，这可能很方便；但自主性越高，检查点就越重要。目标循环应该被当成带有人为设定预算和退出条件的构建流水线，而不是相信代理自然知道什么时候已经做够了。\n\n 对个人开发者而言，中间路线是只在完成定义足够窄的任务上使用目标模式。“为这五个示例添加解析器并编写测试”可以检查；“改善架构”则无法直接检查。当任务涉及依赖、凭据、迁移、部署文件或安全敏感代码时，应切回先规划的流程，并缩短循环。\n\n ## 多代理不一定更好\n\n Spettro 宣传并行生成子代理，以及专门的协调者和工作者角色。当工作天然可以拆分时，这种方式可能有帮助：一个角色探索仓库，另一个准备测试，另一个评审补丁，再由协调者整合结果。但当多个代理重复同一次搜索，或给出互相矛盾的建议时，它也会浪费时间和 token。\n\n 价值来自角色边界，而不是代理数量。好的拆分会给每个工作者一个不同的问题和清晰的输出格式。例如，探索角色可以找出相关包和现有测试；编码角色可以被限制为提出实现计划；评审角色只检查回归问题和缺失覆盖率。如果每个角色都收到同样含糊的指令，并行只是在复制不确定性。\n\n 仓库采用清单驱动的方法颇有潜力，因为这些角色定义可以编辑。维护者可以检查规划者被要求做什么，修改评审提示词，添加项目专属的文档角色，或删除无用角色。这比行为在没有本地差异的情况下不断变化的供应商控制台，更接近传统的开源定制方式。\n\n 它也会增加维护工作。提示词文件是系统行为的一部分，需要测试、版本管理和评审。对代理指令的修改可能和命令处理器的修改同样重要，尤其是在它改变工具调用时机或上下文数量的情况下。采用 Spettro 的项目，应像审查 CI 配置和开发脚本一样认真地审查代理清单。\n\n ## 供应商灵活性很有帮助，但责任会转移给操作者\n\n 项目记录了对 Anthropic、兼容 OpenAI 的 API，以及 LM Studio 或 Ollama 等本地端点的支持。它还宣传供应商路由、模型目录和统一的推理级别。这对实验很有用：开发者可以比较托管模型与本地模型，用更便宜的模型探索仓库，或者在内部端点足够可靠时，让敏感代码库留在内部。\n\n 供应商独立不等于模型独立。不同模型对工具、上下文限制、结构化输出和审批指令的理解不同。一个供应商能生成谨慎计划的提示词，换到另一个供应商可能只得到浅层摘要。某个模型能很好地处理一个小型 Go 变更，也可能难以处理大型单体仓库。运行时可以统一处理诸如 `/thinking high` 的命令，却无法让底层模型变得等价。\n\n 最好的评估方法是固定任务。准备一个小型基准仓库，定义预期文件和测试，使用两个供应商运行同一任务。记录计划是否找对代码，代理是否在使用工具前询问，最终补丁是否通过测试，以及需要多少人工修正。这比根据一次令人印象深刻的演示来评价界面更有价值。\n\n 此外还有数据治理问题。仓库称密钥会被加密，网站也展示了托管和本地供应商选项，但在连接凭据前，用户仍需阅读配置和存储文档。他们应当确认哪个进程能够读取密钥，会话数据存储在哪里，提示词和工具输出是否会持久化，以及启用网页或中继功能是否会产生另一条数据路径。“自带密钥”是一种部署选择，不是一份完整的隐私政策。\n\n ## ACP 让 Spettro 不只是终端玩具\n\n Spettro 可以作为 Agent Client Protocol 代理，通过标准输入和标准输出运行。其 ACP 文档称，Zed 以及 Neovim 插件等编辑器可以通过原生代理界面驱动它，同时复用现有的供应商、模型、权限、清单和沙箱设置。这是一个实际的设计选择：开发者可以把执行策略保留在同一个运行时中，只更换前端。\n\n 这很重要，因为终端优先工具经常面临一个虚假的二选一：要么提供强大的命令行工作流，却要求用户离开编辑器；要么深度集成某个编辑器，并继承它的假设。ACP 为这两类关注点之间提供了一条可能的连接。Spettro 可以继续充当代理运行时，而编辑器成为用户查看提示、差异和问题的地方。\n\n 这条连接也可能藏着缺陷。编辑器集成会增加协议转换、生命周期处理、流式输出、取消操作和权限提示。客户端的问题可能让安全策略看起来像是失效，混乱的界面也可能导致用户在不了解范围的情况下批准操作。早期采用者应在终端中使用同样的限制来测试 ACP，并确认取消操作确实会停止底层任务。\n\n 目前，ACP 最有力的价值并不是取代编辑器助手，而是在不丢弃运行时声明控制措施的前提下，更容易接入已有工作流。如果更多客户端实现这一协议，这会成为值得关注的架构优势。\n\n ## 远程控制和 Telegram 值得格外谨慎\n\n 仓库记录了一个回环远程控制平面，以及可以将控制平面暴露给局域网设备的模式。它还记录了 Telegram 中继。对于想从另一台设备观察或驱动会话的开发者，这些功能可能有用；但它们会显著改变威胁模型。一个只读取本地输入的终端工具是一回事，接受远程命令的工具是另一回事。\n\n 安全默认值是：在弄清认证、绑定地址、传输安全和命令授权之前，保持远程功能关闭。“回环”比暴露到局域网更窄，但不能代替阅读实现。一个本地网页端点仍可能被另一个进程、浏览器扩展或转发端口访问。聊天中继还会引入第三方账户、消息保留、机器人 token 管理，以及对话命令被解释为修改仓库指令的可能性。\n\n 如果确实需要远程模式，应使用临时项目，将其绑定到尽可能小的接口，保持严格的文件系统策略，并在连接真实代码检出目录前确认可用命令。除非项目明确记录工具调用、审批事件和失败方式，否则不要把可见的聊天记录当作审计轨迹。\n\n 这并不是 Spettro 独有的批评，而是代理运行时的一般规则：任何提高可达性的便利功能，都值得单独进行安全评审。代码开源使评审成为可能，却不会替你完成评审。\n\n ## GPL-3.0 是一个有分量的选择\n\n Spettro 的仓库将项目标为 GPL-3.0 许可。这与许多开发库采用的宽松许可证有实质区别。开发者可以依据 GPL 条款运行、研究、修改和分享程序；但计划把它嵌入专有分发产品的组织，需要让法律人员评估代码组合和分发方式。\n\n 这个许可证也符合项目所表达的姿态。Spettro 不只是隐藏在托管服务背后的 SDK；仓库包含运行时、提示词、安装脚本和文档。强 copyleft 许可证可以帮助保留检查和再分发修改版本的自由，同时也可能缩小愿意把它作为封闭商业工具组件的组织范围。\n\n 不要从许可证中推断它没有承诺的内容。GPL-3.0 不保证支持、安全响应时间、可复现构建或稳定 API。这些属于项目治理和发布工程问题。最新发布页面显示 v2.8.2，README 则记录了从源码构建需要 Go 1.26.1 或更新版本。这足以说明项目活跃且变化迅速，但不足以证明它具备长期兼容性。\n\n ## 发布历史传达的是“试试看”，不是“标准化采用”\n\n GitHub 列出的最新标签版本 v2.8.2 于 2026 年 10 月 4 日发布。此前的 v2.8.1 增加了动画终端 logo，v2.8.0 则于 9 月 28 日发布。可见的发布节奏显示，该项目正在快速调整界面和工作流。对于希望快速获得改进的早期采用者，这可能是优点；对于需要在多台机器上保持稳定行为的团队，这可能带来不便。\n\n 检查时，发布页面摘要没有显示 issue 或 pull request 数量，主页面也显示出规模较小的社区。这些信号应谨慎解读：它们是某个时间点的快照，不是质量评分。但它们确实意味着，许多重要问题仍可能需要通过阅读代码来回答，而不是依赖多年社区报告。\n\n 采用新版本前，应固定版本或提交，保留现有二进制，并运行一套固定的冒烟测试。测试应包括项目信任、供应商设置、计划生成、审批、受控文件编辑、测试执行、会话恢复和关闭流程。如果依赖 ACP，还应加入编辑器启动、取消和权限提示测试。如果依赖远程控制，则应加入认证和网络边界检查。\n\n 小型测试工具的价值高于大型演示。它能帮助你发现依赖更新是否改变了命令界面、默认权限模式、提示词结构或持久化行为。\n\n ## 现在适合谁尝试 Spettro\n\n Spettro 对几个特定群体比较合适。\n\n 第一类是偏好终端工作流、又希望在不绑定单一模型供应商的情况下实验代理角色的开发者。能够连接托管或本地供应商，并检查清单，对比较工作很有用。\n\n 第二类是对代理监督机制感兴趣的开源维护者。Spettro 规模足够小，便于阅读；它使用熟悉的语言，也明确展示了许多大型工具藏在服务边界之后的工作流组件。贡献者可以参与提示词、供应商适配器、沙箱行为、ACP 支持、测试、文档或发布工程。\n\n 第三类是正在构建内部原型的团队，尤其是主要需要可控任务运行器，而不是完整企业平台的团队。没有凭据的受限本地工作区，可以成为评估“先规划再审批”的交接是否改善评审质量的安全场所。\n\n 如果团队寻找的是成熟、有人支持、能够保证升级兼容性的设备集群产品，Spettro 并不合适。对于生产基础设施上的无人监督变更、包含敏感凭据的仓库，或无法自动检查完成情况的任务，它也不是首选。\n\n ## 一套实际评估方案\n\n 只要范围保持小，一次有用的试用可以在一个下午内完成。先创建一个全新仓库，里面放一个小程序、一个失败测试和一份简短 README。按固定版本构建 Spettro，或使用发布产物，然后阅读项目的安装和配置文档。不要从真实应用开始。\n\n 把文件系统设为只读，把网络设为 none。要求规划代理描述它会如何修复失败测试。检查它是否找到了相关文件，以及是否避免声称自己已经完成了修改。然后切换到只限临时仓库的工作区，批准最小可能的编辑。\n\n 接下来用第二个供应商或本地端点运行同一任务。比较计划、工具顺序、最终差异、测试结果和修正次数。尝试中断运行，关闭终端，再恢复会话，检查保存了什么。如果通过 ACP 使用编辑器，也要在那里重复审批和取消测试。\n\n 只有完成这些检查后，才应加入一个真实但不敏感的仓库。让代理远离部署凭据、发布包 token 和个人配置。使用独立工作树或临时分支。记录版本、模型、供应商、权限设置和仓库指令，以便之后复现结果。\n\n 这种方法也能向项目提供有用反馈。包含固定版本、小型复现、权限模式、供应商，以及预期与实际工具调用的 bug 报告，远比“代理表现很奇怪”更有价值。\n\n ## 接下来值得观察什么\n\n 接下来对 Spettro 有意义的测试，不是再列一张命令清单，而是观察稳定性和证据。项目在增加功能的同时，能否保持权限语义一致？能否让会话状态可检查、可迁移？ACP 集成能否保留与终端界面相同的审批保证？维护者能否说明凭据、提示词、工具输出和远程中继如何存储？贡献者能否从源码复现发布，并弄清哪些变更影响代理行为？\n\n 项目的开源状态意味着这些问题可以公开回答；它的规模也让贡献变得容易接近。项目目前的成熟度则意味着答案尚未定型。正因如此，它值得放入观察名单：不是作为所有编码助手的成品替代物，而是作为让代理工作变得可理解的一项具体实验。\n\n Spettro 最值得保留的想法很简单：自主性应当被明确边界包围。执行前应能看到计划；角色应当有清晰职责；工具调用应继承策略；会话应当可以恢复，但不能因此变得神秘。软件仍需要加固、文档、安全评审，以及更大的独立用户群。在此之前，应把它当作一个有潜力的实验室，并把实验室隔离起来。\n\n ## 来源\n\n - [Aploide/spettro 仓库与 README](https://github.com/Aploide/spettro)：事实来源。\n- [Aploide/spettro 发布历史](https://github.com/Aploide/spettro/releases)：事实来源；页面列出的 v2.8.2 发布于 2026 年 10 月 4 日。\n- [Spettro 官方项目网站](https://spettro.app/)：背景来源。\n- [Spettro Agent Client Protocol 文档](https://spettro.app/docs/acp)：事实来源。\n- [Spettro 文档索引](https://spettro.app/docs)：背景来源。\n- [Spettro GPL-3.0 许可证文件](https://github.com/Aploide/spettro/blob/main/LICENSE)：许可证来源。","available_translations":[{"language":"ar","title":"Spettro ينقل سير عمل وكيل البرمجة إلى الطرفية ويجعل الصلاحيات جزءًا من المنتج","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=ar","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=ar","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=ar"},{"language":"de","title":"Spettro bringt den Coding-Agent-Workflow ins Terminal – und macht Berechtigungen zum Produktbestandteil","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=de","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=de","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=de"},{"language":"en","title":"Spettro puts the coding-agent workflow in the terminal — and makes permissions part of the product","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=en","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=en","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=en"},{"language":"es","title":"Spettro lleva el flujo de trabajo de los agentes de programación al terminal y convierte los permisos en parte del producto","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=es","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=es","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=es"},{"language":"fr","title":"Spettro place le workflow de l’agent de programmation dans le terminal et fait des permissions un élément central","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=fr","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=fr","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=fr"},{"language":"pl","title":"Spettro przenosi pracę z agentem kodującym do terminala i czyni uprawnienia częścią produktu","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=pl","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=pl","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=pl"},{"language":"ru","title":"Spettro переносит рабочий процесс coding-агента в терминал — и делает разрешения частью продукта","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=ru","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=ru","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=ru"},{"language":"zh","title":"Spettro 把编码代理工作流带进终端，也把权限变成产品的一部分","html_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=zh","markdown_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=zh","json_url":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=zh"}],"_links":{"self":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=zh","api":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/spettro_open_source_terminal_agent_explicit_permissions?lang=zh","html":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=zh","canonical":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions?lang=zh","markdown":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.md?lang=zh","json":"https://publicasta.com/open_source_radar/spettro_open_source_terminal_agent_explicit_permissions.json?lang=zh","channel":"https://publicasta.com/api/public/v1/channels/open_source_radar","channel_articles":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}