Skip to content

pstack: support fx as a harness #1013

Open

Description

@DarlingtonDeveloper

I'd like to use pstack in fx (https://fx.sh), a terminal coding agent from Vercel. fx reads standard SKILL.md folders, so most of pstack loads already. A few gaps stop poteto-mode from working as written.

What I tested

pstack 0.15.34 (519d36a), fx 0.0.15, macOS. I ran fx ask from inside harness/pstack/claude-code, so fx found the tree's skills/ folder as workspace skills. Nothing was installed globally.

  • Works: all 58 skills show up in fx's skill catalog and load in full, including poteto-mode, how, and setup-pstack.
  • fx ignores disable-model-invocation. 57 of 58 skills set it, so fx can pick any of them on its own.
  • 23 skills start with "In Claude Code, read the Claude Code adapter". An fx agent can take that as not applying to it. fx's skill tool also refuses ../../docs/harness/claude-code.md as a skill resource (InvalidSkillResourcePath) because the path points outside the skill folder.
  • The Cursor names have no fx mapping: Task, subagent_type (poteto-agent, comment-sicko, generalPurpose), readonly, AskQuestion, todo lists, and pstack-models.mdc.

How the Cursor names map to fx

  • Task: fx's subagent tool, either a one-off run or a named persistent agent. It takes a model and effort per child. There is no subagent_type, and fx subagents cannot spawn their own subagents.
  • poteto-agent and comment-sicko: fx has no agent files. The equivalent is a subagent whose brief says to read the agent's markdown first.
  • readonly: true: fx has no documented read-only flag, so the brief says "do not edit files".
  • AskQuestion: ask_user_question.
  • Todo lists: fx has no todo tool, so the list lives in the reply.
  • Rules: AGENTS.md. Skills: ~/.fx/skills or .fx/skills.
  • Cursor-only features (Bugbot, Automations, cloud agents, /loop, custom modes): skip with a one-line note, as the Claude Code adapter does.

Question

Which shape would you accept?

  1. An fx adapter (pstack/docs/harness/fx.md) plus README steps that point fx at the existing claude-code tree, like the Codex findings in pstack: support Codex installation and native agents #734.
  2. A generated harness/pstack/fx tree, built on the multi-harness generator in feat(pstack): install pstack in Google Antigravity from a generated tree #953.
  3. A harness-neutral adapter line in place of "In Claude Code, read...", so one tree can serve several harnesses.

I can open the PR for whichever you prefer.

Related: #601, #734, #953, #237

Activity

  1. deanrie commented on Oct 29, 2026

    @deanrie

    Hey @DarlingtonDeveloper, your counts match main exactly (57 of 58 skills carry disable-model-invocation: true, 23 open with the Claude Code adapter line), so the gaps are real. One fact that orders your three shapes: scripts/generate-pstack-harness-trees.mjs on main is single-tree (const TREE = "claude-code", const ADAPTER = "docs/harness/claude-code.md"); the multi-harness version only exists inside @aryamantepal's #953 (Antigravity tree, 100 files, still open). So shape 2 depends on #953 landing first, shape 1 works now against the tree that is already checked in, and shape 3 is the only one that removes the "In Claude Code, read ..." sentence that fx trips over rather than adding a parallel copy of it. The model-family half of the question (fx has no subagent_type, so the adversarial seats collapse the same way they do in Claude Code) is the subject of #809; worth deciding both together.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions