Two distribution formats
Their installation entry points and lifecycles differ.
step install and /plugin install are not the same command.
Packages: installation and management
These names and addresses illustrate source formats; replace them with trusted resources:- Installs default to user scope and write global configuration.
-lwrites project.stepcode/config.toml; trusted projects automatically install missing packages on startup.step -e <source>loads an extension temporarily without persisting configuration, but still executes its code.step update --allupdates Step and all packages;step update --extensionsupdates only packages and pinned Git refs.
Package sources and manifests
Declare
extensions, skills, prompts, and themes resource paths in package.json, with glob and ! exclusion support. Without a manifest, same-named conventional directories are used. Paths are relative to the package root.
User packages typically live in ~/.stepcode/agent/npm/ and git/; project packages in .stepcode/npm/ or .stepcode/git/. Do not keep your only uncommitted changes in managed clones; updates may realign pinned refs.
Dependencies and bundling
Put runtime dependencies independencies; installation uses npm install --omit=dev. Put runtime-provided core packages in peerDependencies: "*" rather than bundling them again.
For dependencies on other Step packages, declare both dependencies and bundledDependencies, and reference resources through node_modules/ paths.
Package and Git dependency installation may run package-manager operations. Review sources, versions, and install scripts. Markdown or JSON entry points do not imply that no code can execute.
Filtering and enabling packages
Limit loaded resources inconfig.toml:
! exclusions, and exact +path / -path controls. step config provides interactive management; Tab switches global and project scope.
Project entries override same-name global packages. Project resources remain subject to trust settings.
Plugin marketplaces
The native manifest is
step.plugin.json, with compatibility for .claude-plugin/plugin.json and marketplace manifests in marketplace.json. Fields include id, name, description, version, entry, skills, agents, commands, mcpServers, and provision. id is required; the size limit is 512 KiB. entry records an executable entry point but is not loaded.
Restart Step Code after installing or removing MCP plugins to start or stop their servers. Check results with /mcp.
StepPage: publishing static websites
steppage marketplace plugin publishes directories or ZIP files, lists sites and versions, promotes or rolls back versions, and generates preview links. It needs STEPFUN_API_KEY or a signed-in Step account. Missing steppage-mcp is installed through the official installer; automatic installation is not available on Windows. See steppage.
Manage sites at platform.stepfun.com/sites. The built-in marketplace also offers the playwright browser-control plugin, using npx @playwright/mcp@latest.
Security notes
Extensions, packages, and stdio MCP servers can execute code with the current user’s system permissions. Skill and agent instructions can also lead to command execution. Install only trusted sources and provide the minimum necessary credentials. Step Code has no file-based Hooks. Use extension events such astool_call, tool_result, and input for equivalent automation and interception.

