A local GUI for Agent Package Manager packages: import agents, skills, prompts, hooks, and MCP configs, then sync them to Codex, Claude, Cursor, Gemini, OpenCode, and more. APM Studio is the visual layer for the APM ecosystem.
$ npx -y skills add apm-studio/apm-studio --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: apm-studio/apm-studio
What's inside
A local GUI for Agent Package Manager packages: import agents, skills, prompts, hooks, and MCP configs, then sync them to Codex, Claude, Cursor, Gemini, OpenCode, and more.
Quick Start | APM Studio Flow | Microsoft APM | CLI | Development | Deployment

APM Studio is the visual layer for the APM ecosystem. It imports source references from GitHub, manages local packages in packages/*, runs Studio Agents with local runtime settings, and exports selected APM primitives into assistant target files when you choose to sync.
The npm package is apm-studio.
Requirements:
>=20.19.0Install:
curl -fsSL https://raw.githubusercontent.com/apm-studio/apm-studio/main/public/install.sh | sh
Start immediately after install:
curl -fsSL https://raw.githubusercontent.com/apm-studio/apm-studio/main/public/install.sh | sh -s -- --start
Windows:
irm https://raw.githubusercontent.com/apm-studio/apm-studio/main/public/install.ps1 | iex
Start immediately on Windows:
iex "& { $(irm https://raw.githubusercontent.com/apm-studio/apm-studio/main/public/install.ps1) } -Start"
Manual npm install:
npm install -g apm-studio
apm-studio
The installer installs or updates apm-studio, checks for the upstream Microsoft APM CLI, delegates missing APM CLI setup to Microsoft APM, and runs apm install when the current workspace already has an apm.yml. It prints the concrete apm-studio start command when installation finishes. Use --start on Unix or -Start on Windows to launch Studio immediately from the installer.
| Step | What happens |
|---|---|
| Import | Search source references or paste a GitHub repo, preview detected primitives, then install selected packages locally. |
| Manage | Edit local APM package metadata and Studio Agent composition while keeping canonical package content under packages/<packageId>/. |
| Run | Test Studio Agents locally with Studio-only model settings that are not emitted to target assistant files. |
| Export | Sync selected APM agents, instructions, skills, prompts, commands, hooks, or MCP config into supported assistant targets. |
APM Studio keeps source and output separate:
GitHub source -> packages/<packageId>/apm.yml -> Studio Agent runtime
-> Export target sync -> assistant files
Studio-only workspace state lives in .apm-studio/. Generated OpenCode runtime projection lives in .opencode/. Assistant target files are written only through Export.
APM Studio is the visual layer for the upstream Microsoft APM package format and CLI:
APM Studio keeps package authoring, local Studio Agent runs, and assistant target sync in one UI while delegating package validation and broad target installs to Microsoft APM. Target sync is CLI-first: Studio tries APM_STUDIO_APM_CLI, then apm, then uvx --from git+https://github.com/microsoft/apm.git apm. Studio-native fallback is limited to supported agent and skill sync when no CLI runner is available.
apm-studio [path] [options]
apm-studio open [path] [options]
apm-studio doctor [path] [options]
apm-studio --help
apm-studio --version
Examples:
apm-studio
apm-studio ~/projects/my-app
apm-studio open . --no-open
apm-studio open . --port 43111
apm-studio doctor
Default local ports:
| Runtime piece | Port |
|---|---|
| Published CLI app and API | 43100 |
| Published CLI managed OpenCode sidecar | 43102 |
| Dev client | 43200 |
| Dev API | 43201 |
| Dev managed OpenCode sidecar | 43202 |
npm install
npm run dev
npm run type-check
npm test
Release check:
npm run type-check
npm test
npm run pack:check
npm publish --dry-run
Publishing a fix requires a new npm version so npm install -g apm-studio and the installers' default latest tag can receive it. See Deployment Guide for the release gates, installer flow, npm latest verification, and deployed install smoke test.
Important directories:
src/: browser UI and workspace state.shared/: client/server contracts for packages, runtime, workspace state, and target sync.server/: API routes, Import behavior, target sync, runtime preparation, and projections.packages/: canonical local APM package source..opencode/: generated runtime artifacts.doc/: behavior and boundary guides..github/
apm-studio-icon.png
screenshot.png
.gitignore
.nvmrc
AGENTS.md
cli.ts
DESIGN.md
DISCORD_INTEGRATION.md
doc/
CHAT_SESSION_RUNTIME_GUIDE.md
CONFIG_BOUNDARY_GUIDE.md
DEPLOYMENT_GUIDE.md
DISCORD_INTEGRATION_GUIDE.md
RUNTIME_CHANGE_BOUNDARY_GUIDE.md
STORAGE_BOUNDARY_GUIDE.md
STUDIO_ASSISTANT_GUIDE.md
TEAM_CONTRACT_GUIDE.md
eslint.config.js
index.html
LICENSE
package-lock.json
package.json
public/
apm-studio-icon-512.png
apm-studio-icon.png
apm-studio.svg
apple-touch-icon.png
favicon-16x16.png
favicon-32x32.png
install.ps1
install.sh
site.webmanifest
README.md
scripts/
copy-runtime-assets.mjs
kill-ports.mjs
server/
app.test.ts
app.ts
cli.test.ts
index.ts
lib/
api-service-failure.ts
apm-loader.test.ts
apm-loader.ts
apm-studio-paths.ts
cache.ts
chat-session.test.ts
chat-session.ts
cli-utils.test.ts
cli-utils.ts
config.test.ts
config.ts
global-config.test.ts
global-config.ts
mcp-catalog.test.ts
mcp-catalog.ts
model-catalog-normalization.test.ts
model-catalog-normalization.ts
model-catalog-title.test.ts
model-catalog-title.ts
model-catalog.test.ts
model-catalog.ts
opencode-auth.ts
opencode-error-classifiers.ts
opencode-error-normalization.test.ts
opencode-error-normalization.ts
opencode-error-readers.ts
opencode-errors.test.ts
opencode-errors.ts
opencode-prompt.test.ts
opencode-prompt.ts
opencode-sidecar.test.ts
opencode-sidecar.ts
opencode.ts
package-bin.ts
project-config.ts
request-context.ts
runtime-tools.test.ts
runtime-tools.ts
server-logger.test.ts
server-logger.ts
session-execution.ts
sse.ts
team-session-policy.ts
routes/
apm/
import.test.ts
import.ts
index.test.ts
index.ts
packages.ts
route-utils.ts
sync.ts
chat/
index.ts
messages.test.ts
messages.ts
sessions.test.ts
sessions.ts
stream.ts
compile/
index.ts
discord/
index.ts
drafts/
collection.test.ts
collection.ts
index.ts
item.test.ts
item.ts
skill-bundle.test.ts
skill-bundle.ts
health/
index.test.ts
index.ts
opencode/
core.test.ts
core.ts
file.test.ts
file.ts
index.ts
mcp.test.ts
mcp.ts
provider.test.ts
provider.ts
usage.test.ts
usage.ts
route-errors.ts
studio/
index.test.ts
index.ts
team-runtime/
index.ts
route-errors.ts
threads.test.ts
threads.ts
tools.test.ts
tools.ts
terminal/
index.ts
workspaces/
index.test.ts
index.ts
services/
apm-package/
apm-cli-audit.test.ts
apm-cli-audit.ts
apm-cli-runner.ts
apm-cli-targets.test.ts
apm-cli-targets.ts
github-import-candidate-builders.ts
github-import-candidate-ids.ts
github-import-candidate-types.ts
github-import-candidates.ts
github-import-constants.ts
github-import-detection.ts
github-import-utils.ts
github-import.test.ts
github-import.ts
github-source-catalog.ts
github-source.ts
local-target-import.test.ts
local-target-import.ts
manifest-agent-normalization.test.ts
manifest-agent-normalization.ts
manifest-hash.ts
manifest.ts
microsoft-apm-source.ts
package-files.ts
package-source-files.ts
package-storage.test.ts
paths.ts
primitive-import-export.e2e.test.ts
repository.ts
root-manifest.ts
source-ref.test.ts
source-ref.ts
studio-fallback-artifacts.ts
studio-fallback-package.test.ts
studio-fallback-package.ts
studio-fallback-sync.ts
sync-cli-artifacts.ts
sync-ownership.ts
sync-targets.ts
sync-temp-package.test.ts
sync-temp-package.ts
target-definitions.ts
target-import/
adapters.ts
helpers.ts
types.ts
target-sync-execution.ts
target-sync-plan.test.ts
target-sync-plan.ts
target-sync.test.ts
target-sync.ts
tooling.ts
types.ts
workspace.ts
yaml-io.ts
chat/
chat-prompt-parts.test.ts
chat-prompt-parts.ts
chat-prompt-runtime.ts
event-stream-service.test.ts
event-stream-service.ts
message-service.test.ts
message-service.ts
session-directory.ts
session-interactions.ts
session-mutations.ts
session-normalizers.test.ts
session-normalizers.ts
session-ownership-service.ts
session-queries.ts
session-service.test.ts
session-service.ts
team-turn-lifecycle.ts
team-turn-projection.ts
thread-title-execution.ts
thread-title-service.ts
turn-prompt-service.ts
compile/
service.ts
discord/
access-control.test.ts
access-control.ts
config-store.test.ts
config-store.ts
discord-access-gate.ts
discord-agent-commands.ts
discord-channel-manager.ts
discord-client-events.ts
discord-commands.ts
discord-interaction-service.ts
discord-message-service.ts
discord-navigation-interactions.ts
discord-output-presenter.ts
discord-pending-interactions.ts
discord-prompt-interactions.ts
discord-service-helpers.ts
discord-service.ts
discord-session-messages.ts
discord-session-state.ts
discord-session-turn-tracker.ts
discord-standalone-threads.ts
discord-team-commands.ts
discord-team-runtime-subscriptions.ts
discord-team-thread-sync-service.ts
discord-thread-channel-manager.ts
discord-workspace-commands.ts
discord-workspace-menu.ts
discord-workspace-sync-service.ts
studio-runtime.test.ts
studio-runtime.ts
sync-plan.test.ts
sync-plan.ts
drafts/
draft-dependency-planner.ts
draft-normalizers.ts
service.ts
skill-bundle-service.ts
import/
registry-service.test.ts
registry-service.ts
opencode/
opencode-projection/
agent-compiler.test.ts
agent-compiler.ts
agent-projection-identity.ts
agent-projection-relations.test.ts
agent-projection-relations.ts
agent-projection-runtime.test.ts
agent-projection-runtime.ts
agent-projection-types.ts
agent-projection-writer.test.ts
agent-projection-writer.ts
preview-service.ts
projection-dirty-patch.ts
projection-execution-plan.ts
projection-manifest.test.ts
projection-manifest.ts
skill-bundle-sync.test.ts
skill-bundle-sync.ts
skill-compiler.test.ts
skill-compiler.ts
workspace-agent-projection-service.test.ts
workspace-agent-projection-service.ts
config.ts
mcp.ts
provider-auth.ts
queries.ts
query-normalizers.ts
response-data.ts
runtime.ts
service.test.ts
service.ts
runtime/
execution-events.ts
preparation-service.test.ts
preparation-service.ts
reload-service.test.ts
reload-service.ts
studio/
studio-assistant/
agent/
studio-assistant.md
assistant-chat-service.ts
assistant-context-intent.test.ts
assistant-context-intent.ts
assistant-context-optimizer.test.ts
assistant-context-optimizer.ts
assistant-context-prompt.ts
assistant-context-selection.ts
assistant-context-summaries.ts
assistant-discovery-prompt.ts
assistant-mutation-tool-content.ts
assistant-mutation-tool-source-execute.ts
assistant-mutation-tool-source-lint.ts
assistant-mutation-tool-source-normalization.ts
assistant-mutation-tool-source-schema.ts
assistant-service.test.ts
assistant-service.ts
assistant-startup-service.test.ts
assistant-startup-service.ts
assistant-tools.ts
skills/
find-skills/
SKILL.md
studio-assistant-action-surface-guide/
references/
payload-examples.md
SKILL.md
studio-assistant-agent-guide/
SKILL.md
studio-assistant-instruction-design-guide/
SKILL.md
studio-assistant-skill-creator-guide/
references/
bundle-authoring.md
SKILL.md
studio-assistant-studio-guide/
references/
navigation.md
SKILL.md
studio-assistant-team-guide/
SKILL.md
studio-assistant-ui-operations-guide/
SKILL.md
studio-assistant-workflow-guide/
SKILL.md
service.test.ts
service.ts
team-runtime/
board-command-rules.ts
board-limits.ts
board-persistence.ts
event-logger.ts
event-router.ts
linked-session-cleanup.ts
mailbox.ts
message-command-rules.ts
participant-projection-prewarm.ts
participant-status-reconciliation.ts
safety-guard.ts
session-queue.ts
team-context-builder.ts
team-runtime-actors.ts
team-runtime-board-commands.ts
team-runtime-collaboration.test.ts
team-runtime-deletion.ts
team-runtime-events.ts
team-runtime-message-commands.ts
team-runtime-participants.ts
team-runtime-recovery.ts
team-runtime-results.ts
team-runtime-service.test.ts
team-runtime-service.ts
team-runtime-thread-commands.ts
team-runtime-utils.ts
team-runtime-wake-conditions.ts
team-session-runtime.test.ts
team-session-runtime.ts
team-session-settlement.test.ts
team-session-settlement.ts
team-tool-files.ts
team-tool-projection.ts
team-tools.ts
thread-manager.test.ts
thread-manager.ts
thread-participant-sessions.ts
thread-runtime-lifecycle.test.ts
thread-runtime-lifecycle.ts
thread-runtime-state.ts
thread-snapshot-persistence.ts
wait-until-session-park.ts
wake-agent-resolver.ts
wake-blocked-retry.ts
... 650 moreFAQ
apm-studio is a Claude Code plugin with 9 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes find-skills, studio-assistant-action-surface-guide, studio-assistant-agent-guide. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.