npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sellable/install

v0.1.710

Published

One-command installer for Sellable MCP in Claude Code, Codex, and Hermes

Downloads

65,504

Readme

Sellable Installer

Installs Sellable MCP for Claude Code, Codex, and Hermes.

curl -fsSL "https://app.sellable.dev/api/v2/cli/install" | sh

Paste that command in your terminal, not inside the Codex chat. It downloads a reviewable bootstrapper that installs or reuses Node >=20, runs @sellable/install, and verifies the Sellable MCP runtime.

Windows users can use PowerShell or Windows Terminal:

iwr "https://app.sellable.dev/api/v2/cli/install.ps1" | iex

After install, restart Codex Desktop, Claude Code, or Hermes so Sellable MCP tools and skills reload. In an active Hermes session, /reload-mcp and /reload-skills can reload the new config.

Verify the runtime tools with:

sellable --verify-only --host all --json --artifact "$HOME/.local/sellable/app-sellable-dev/installer/.last-verify.json"

After install, sellable create is a terminal helper that prints the correct agent command for launching a campaign:

sellable create

Campaign creation, sender send refills, foundation memory, content capture/ideation, and post drafting run inside Claude Code, Codex, or Hermes, where the Sellable MCP tools and approval flows are available.

Install is auth-free by default. The normal path is first-run login: launch a Sellable workflow in Claude Code, Codex, or Hermes and the agent handles Sellable sign-in with a browser magic-link handoff.

The installer uses package stdio MCP by default:

npm exec --yes --package @sellable/mcp@latest -- sellable-mcp

That keeps new Claude Code/Codex/Hermes MCP starts on the latest stable package. The MCP server also checks npm at startup and during get_auth_status, caching the result at ~/.sellable/update-check.json so users are prompted to rerun the latest installer only when an update is actually available.

Agents should use the agent-readable handoff instead of guessing commands:

Install Sellable CLI and skills using https://app.sellable.dev/agent-install.txt

The direct npm installer is only a package-level troubleshooting fallback for maintainers. Public installs should keep using the curl endpoint above because it bootstraps Node, repairs legacy state, installs skills, and runs runtime verification in one path:

curl -fsSL "https://app.sellable.dev/api/v2/cli/install" | sh

For scripted fallback after browser login, paste the command shown by Sellable:

sellable auth set <token> --workspace-id <workspace_id>

For CI/env-only installs, operators can still pass --token / SELLABLE_TOKEN plus --workspace-id / SELLABLE_WORKSPACE_ID. Do not use env vars as the primary human setup path.

Auth is stored once at:

~/.sellable/config.json

Hermes Profile-Scoped Installs

For a single local Hermes profile, point Sellable auth and memory at the profile instead of the global ~/.sellable/config.json:

profile="$HOME/.hermes/profiles/acme"
sellable --host hermes \
  --sellable-config-path "$profile/sellable/config.json" \
  --sellable-configs-dir "$profile/sellable/configs"

That writes SELLABLE_CONFIG_PATH and SELLABLE_CONFIGS_DIR into mcp_servers.sellable.env, so first-run login, get_auth_status, workspace switches, and Sellable memory all use the same profile-local files. Hosted MCP mode does not receive local filesystem paths.

For zero-shot local or Hostinger/Linux VPS bootstrap, use the profile command:

sellable hermes profile bootstrap \
  --profile acme \
  --profiles-root /srv/hermes/profiles \
  --workspace-id ws_acme \
  --workspace-name Acme \
  --token-file /run/secrets/sellable-acme-token \
  --json

It creates:

/srv/hermes/profiles/acme/config.yaml
/srv/hermes/profiles/acme/sellable/config.json
/srv/hermes/profiles/acme/sellable/configs/
/srv/hermes/profiles/acme/skills/sellable/
/srv/hermes/profiles/acme/.env        # only when Slack token inputs are supplied

Bootstrap also writes SELLABLE_LOCK_WORKSPACE_ID=<workspace-id> and SELLABLE_REQUIRE_WORKSPACE_LOCK=1 into the profile's Hermes MCP env. Customer profiles are therefore locked to their own Sellable workspace: Sellable MCP requests are forced to that workspace, workspace switching/creation is blocked, workspace listings are filtered, and a missing lock fails closed instead of falling back to shared/admin config. Use the sellable-admin profile for provisioning or cross-profile inspection.

See HERMES-SLACK-PROFILE-SCOPING.md for the customer Slack isolation contract and Socket Mode token requirements.

If no token is supplied, bootstrap still creates a pending sellable/config.json so the profile path is concrete from the first MCP launch. Finish auth with:

sellable auth set <token> --workspace-id <workspace_id> \
  --sellable-config-path /srv/hermes/profiles/acme/sellable/config.json

Slack Socket Mode tokens can be written profile-locally:

sellable hermes profile bootstrap \
  --profile acme \
  --profiles-root /srv/hermes/profiles \
  --workspace-id ws_acme \
  --slack-bot-token "$SLACK_BOT_TOKEN" \
  --slack-app-token "$SLACK_APP_TOKEN"

The Slack app must also be configured for inbound Socket Mode delivery. Outbound Slack Web API sends can work before this is complete, but Hermes will not hear mentions until the app has Socket Mode enabled, an app-level token with connections:write, bot scopes/events for app_mention plus channel/group/IM message events, and a fresh workspace reinstall after scope or event changes.

Scope the profile to its customer channel at install time:

sellable hermes profile bootstrap \
  --profile acme \
  --profiles-root /srv/hermes/profiles \
  --workspace-id ws_acme \
  --slack-bot-token "$SLACK_BOT_TOKEN" \
  --slack-app-token "$SLACK_APP_TOKEN" \
  --slack-home-channel C0ACME12345 \
  --slack-home-channel-name sellable-acme \
  --slack-allowed-users U0OPERATOR1 \
  --slack-require-mention true

When --slack-home-channel is supplied without --slack-allowed-channels, bootstrap writes SLACK_ALLOWED_CHANNELS=<home-channel-id> too. That fail-closes a customer profile to the intended channel by default. Use --slack-allowed-channels C...,G... only when a profile is deliberately allowed to listen in multiple channels. Pass channel IDs, not #channel-name, and use separate Slack bot/app tokens per customer profile when you need hard isolation between concurrently listening Hermes profiles.

Customer profiles should use customer-scoped Sellable credentials. A shared Sellable admin token can work for internal admin automation, but it is weaker isolation and should not be the default for customer profiles. After changing Hermes profile config, restart the gateway/session or run /reload-mcp and /reload-skills.

Validate the active profile with the same path inputs:

SELLABLE_CONFIG_PATH=/srv/hermes/profiles/acme/sellable/config.json \
SELLABLE_CONFIGS_DIR=/srv/hermes/profiles/acme/sellable/configs \
sellable --verify-only --host hermes --json \
  --artifact /srv/hermes/profiles/acme/sellable/verify-runtime.json

Claude Code, Codex, and Hermes are configured to launch the same packaged MCP server. The installer also writes Sellable agent definitions from the packaged agents/ registry, but normal create-campaign runs use only the Message Drafting background agent (post-find-leads-message-scout). Source discovery and filter/rubric setup stay in the parent thread with product-native MCP tools. get_post_find_leads_scout_registry returns the Message Drafting worker for the normal path; get_source_scout_registry intentionally returns no custom source-scout agents.

Names

Use the same public entrypoints across supported hosts:

  • Claude Code: /sellable:create-campaign
  • Claude Code: /sellable:find-leads
  • Claude Code: /sellable:create-ab-test
  • Claude Code: /sellable:create-evergreen-campaigns
  • Claude Code: /sellable:foundation
  • Claude Code: /sellable:content
  • Claude Code: /sellable:create-post
  • Claude Code: /sellable:refresh-sender-engagement
  • Claude Code: /sellable:refill-sends
  • Codex: $sellable:create-campaign
  • Codex: $sellable:find-leads
  • Codex: $sellable:create-ab-test
  • Codex: $sellable:create-evergreen-campaigns
  • Codex: $sellable:foundation
  • Codex: $sellable:content
  • Codex: $sellable:create-post
  • Codex: $sellable:refresh-sender-engagement
  • Codex: $sellable:refill-sends
  • Hermes: /sellable-create-campaign
  • Hermes: /sellable-find-leads
  • Hermes: /sellable-create-ab-test
  • Hermes: /sellable-create-evergreen-campaigns
  • Hermes: /sellable-foundation
  • Hermes: /sellable-content
  • Hermes: /sellable-create-post
  • Hermes: /sellable-refresh-sender-engagement
  • Hermes: /sellable-refill-sends
  • Codex Desktop plugin: sellable@sellable
  • Codex visible skill: Sellable Create Campaign
  • Codex visible skill: Sellable Find Leads
  • Codex visible skill: Sellable Create A/B Test
  • Codex visible skill: Sellable Create Evergreen Campaigns
  • Codex visible skill: Sellable Foundation
  • Codex visible skill: Sellable Content
  • Codex visible skill: Sellable Create Post
  • Codex visible skill: Sellable Refresh Sender Engagement
  • Codex visible skill: Sellable Refill Sends
  • Internal MCP workflow prompt: create-campaign-v2
  • Internal MCP workflow prompt: find-leads-v2
  • Internal MCP workflow prompt: refill-sends-workflow
  • Internal/backward-compatible memory prompt: interview

Do not ask users to run /sellable:create-campaign-v2, $sellable:create-campaign-v2, $sellable:load-voice, or $sellable:sellable:create-campaign. Do not ask Hermes users to run /sellable:create-campaign; use /sellable-create-campaign. create-campaign-v2 is loaded internally by the campaign skill. foundation is the preferred entrypoint for durable founder/company memory. content is the preferred entrypoint for adding transcripts, recurring ideas, and post seeds. create-post remains a supported direct drafting shortcut and loads voice internally, so there is no separate public voice-loading command.

Structured Questions

Claude Code uses AskUserQuestion. Codex uses request_user_input when that tool is exposed in an interactive session. The installer enables Codex Default mode support by writing default_mode_request_user_input = true under [features] in ~/.codex/config.toml. codex exec is non-interactive, so it cannot show the structured questionnaire UI.

Hermes skills use plain chat for setup and approval questions unless a Hermes-native approval tool is visible in the current session. Hermes exposes Sellable MCP tools as mcp_sellable_<tool>, for example mcp_sellable_get_auth_status, mcp_sellable_start_cli_login, and mcp_sellable_wait_for_cli_login.

For Codex Desktop, the installer also writes a local Sellable plugin bundle into ~/.sellable/codex-marketplace, includes the Sellable skill entrypoints, and enables it in ~/.codex/config.toml.

Create-Campaign Soul

The create-campaign workflow includes a SOUL.md identity for the Sellable campaign GTM engineer. It keeps the UX focused on launching a campaign: quick setup questions, campaign brief, lead sourcing, message review, and approval. It uses the phrase quick question panel for structured intake and approvals. It also tells the agent not to expose prompt-loading, MCP, plugin-cache, or tool names in normal customer-facing progress updates.

The installer writes compatibility cache aliases for recent Codex plugin versions so stale Desktop skill links resolve to the current wrapper instead of showing file/version debugging to the user.

If only one host is installed, --host all installs the available host and tells you how to add the others later.