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

@claude-world/studio

v1.8.0

Published

Claude World Studio - Trend Discovery to Content Publishing Pipeline

Readme

Claude World Studio

AI-powered content pipeline: from trend discovery to social publishing.

Built with Claude Agent SDK + MCP (Model Context Protocol), featuring 3 integrated MCP servers for real-time trends, web scraping, and research automation.

Welcome Screen

Features

One-Stop Pipeline

Three clear entry points — no complex menus, just pick and go:

Pipeline Cards

| Card | Action | What happens | |------|--------|-------------| | Freestyle | One click, zero input | Auto: trends → read source → verify timeline → patent score → visual → publish | | Custom Topic | Type your topic | Deep research → score → visual → publish | | Custom + Media | Type your topic | Research → NotebookLM slides/video/podcast → publish |

Live Agent Execution

Watch Claude work in real-time — tool calls shown as collapsible blocks with MCP server badges:

Tool Calls

  • trend-pulse (green) — 20 real-time trend sources, zero auth
  • cf-browser (blue) — Cloudflare Browser Rendering for JS pages
  • notebooklm (purple) — Research + artifact generation (podcast/slides/video)
  • studio — Built-in publishing + history tools

Rich Markdown Responses

Full markdown rendering with syntax highlighting, clickable file path previews, cost/duration tracking, and inline images:

Rich Content

Multi-Language (i18n)

Full support for Traditional Chinese, English, and Japanese — all UI, system prompts, and pipeline cards adapt:

Social Publishing (Native TypeScript)

Built-in Threads/Instagram publishing via native fetch() — no Python dependency. Every post is checked against Meta's patent-based 5-dimension scoring:

| Dimension | Patent | What it checks | |-----------|--------|---------------| | Hook Power | EdgeRank | First line has number or contrast? (10-45 chars) | | Engagement Trigger | Dear Algo | CTA anyone can answer? | | Conversation Durability | 72hr window | Has both sides / contrast? | | Velocity Potential | Andromeda | Short enough? Timely? | | Format Score | Multi-modal | Mobile-scannable? |

Quality gates: Overall >= 70, Conversation Durability >= 55.

Supported post types: text, image, video, carousel (2-20 items), poll, GIF, link preview, text attachment, spoiler (media blur + text), ghost (24hr ephemeral), quote post, reply control, topic tag, alt text, link-comment auto-reply.

Multi-Account & Persona

  • Multiple Threads/Instagram accounts with independent personas
  • Per-account style (e.g., "tech-educator", "futurist")
  • Per-account persona prompt for tone adaptation
  • Matrix publishing: same topic → unique content per account

Scheduled Tasks

Cron-based task scheduling with per-account targeting:

  • Define prompt templates with cron schedules
  • Target specific social accounts
  • Quality gate enforcement (min score threshold)
  • Auto-publish or manual review mode
  • Execution history with cost/duration tracking
  • Reduced tool set for unattended safety (no Bash/Read/Write)

Visual Content Generation

NotebookLM integration for auto-generating visuals:

  • Image cards — slides PDF as single-page visual cards
  • Carousel — multi-page slides split into carousel images
  • Podcast — AI-generated audio discussion
  • Video — slides + podcast combined via ffmpeg
  • Mind maps, reports, flashcards, study guides

All downloads stay within the workspace directory.

Workspace File Browser

Browse and preview workspace files directly in the UI:

  • Directory tree with depth control
  • Text file preview (syntax-highlighted)
  • Binary file preview (images, PDFs, audio, video)
  • Clickable file paths in chat responses
  • Workspace-contained — no access outside project folder

Source Verification & Timeline Rules

Content integrity enforced at the system level:

  • Read original sources — Never write from titles/metadata alone. 1+ primary source per topic, 2+ for controversial.
  • Timeline verification — Every fact gets a verified timestamp. Time words mapped by age.
  • No AI filler — System prompt blocks generic phrases ("in today's world" / "it's worth noting").

Session Management

  • Multiple concurrent sessions with independent workspaces
  • Session resume on app restart (conversation history preserved)
  • Idle session eviction (30min TTL)
  • Query cancellation via interrupt button or CLI

Dark Mode

System/light/dark theme with persistent preference across sessions.

IME Support

Full CJK input method support — Enter during Chinese/Japanese character composition does not trigger send. Shift+Enter for newline.

Workspace Security

  • AI agent operates within session workspace only
  • No access to ~/Downloads, ~/Desktop, ~/Documents, or system paths
  • Credentials stored in local SQLite — never searched from filesystem
  • Publishing via built-in MCP tool only (no external scripts)
  • Session workspace validated at creation (blocks system paths)
  • File API restricted to workspace root (symlink-safe realpath check)

Architecture

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  React UI   │────▶│  Express + WS    │────▶│  Claude Agent   │
│  (Vite)     │◀────│  Server          │◀────│  SDK            │
└─────────────┘     └──────────────────┘     └────────┬────────┘
                                                      │
                           ┌──────────────────────────┤
                           │            │             │
                    ┌──────▼──┐  ┌──────▼───┐  ┌─────▼──────┐
                    │ trend-  │  │ cf-      │  │ notebooklm │
                    │ pulse   │  │ browser  │  │            │
                    │ (MCP)   │  │ (MCP)    │  │ (MCP)      │
                    └─────────┘  └──────────┘  └────────────┘
                    20 sources    Cloudflare    Podcast/Slides
                    zero auth     Browser       /Video/Report

Tech Stack

| Layer | Tech | |-------|------| | Frontend | React 18 + Vite + Tailwind CSS | | Backend | Express + WebSocket + Claude Agent SDK | | AI Model | Claude Sonnet 4.6 / Opus 4.6 | | MCP Servers | trend-pulse, cf-browser, notebooklm | | Publishing | Native TypeScript fetch() → Threads Graph API | | Database | SQLite (better-sqlite3, WAL mode) | | Desktop | Electron 41 | | Markdown | react-markdown + rehype-sanitize |

Prerequisites

  • Node.js >= 18
  • Claude Code CLI installed and authenticated (npm install -g @anthropic-ai/claude-code)
  • Python 3.10+ (for MCP servers — or use uvx for zero-config setup)

Installation

Five ways to install — pick the one that fits your workflow:

| Method | Best for | MCP Servers | Web UI | Desktop App | CLI | |--------|----------|-------------|--------|-------------|-----| | A. Mac Desktop | Quickest start | via uvx | Built-in | Yes | Yes | | B. npm | Most users | via uvx | Yes | — | Yes | | C. Source | Contributors | venv or uvx | Yes | — | Yes | | D. Build Desktop | Custom builds | via uvx | Built-in | Yes | Yes | | E. MCP-only | Claude Code users | via uvx | — | — | — |

Option A: Mac Desktop App (Download)

Download the latest .dmg from GitHub Releases, open it, and drag to Applications.

  • Double-click to launch — server starts automatically
  • No terminal, no Node.js install needed
  • MCP servers auto-detected via uvx (install uv first)
  • All features included: Web UI + CLI + MCP + Publishing

Requires: macOS (Apple Silicon). Intel Mac build available on request.

Option B: npm global

npm install -g @claude-world/studio

# Set up MCP servers (one-time, auto-cached via uvx)
npx @claude-world/studio setup-mcp

# Start
studio serve
# Web UI: http://localhost:5173
# API:    http://127.0.0.1:3001

After install, both studio and claude-world-studio commands are available globally.

Option C: From source

git clone https://github.com/claude-world/claude-world-studio.git
cd claude-world-studio
npm install
cp .env.example .env

# Set up MCP servers
# Option 1: uvx (preferred — no clone, no path config)
npx @claude-world/studio setup-mcp

# Option 2: venv (legacy — clones repos, requires path config)
npx @claude-world/studio setup-mcp --venv

# Start development
npm run dev
# Frontend: http://localhost:5173
# Backend:  http://127.0.0.1:3001

Use node bin/cli.js <command> or npm link to register the studio command.

Option D: Build Desktop from source

Build the native macOS app yourself:

git clone https://github.com/claude-world/claude-world-studio.git
cd claude-world-studio
npm install

# Development mode (quick test)
npm run electron:dev

# Production build (creates .app + .dmg)
npm run electron:build
# Output: dist/mac-arm64/Claude World Studio.app

The Electron app:

  • Spawns the Express server automatically on launch
  • Loads your login shell PATH (nvm/homebrew compatible)
  • Rebuilds native modules (better-sqlite3) for system Node ABI
  • Supports all MCP servers (auto-detected via uvx or .env)

Option E: MCP-only (for Claude Code CLI)

If you already use Claude Code CLI and just want the MCP tools (trend-pulse, cf-browser, notebooklm) without the Studio UI:

# Install MCP servers via uvx (one-time)
uvx --from 'trend-pulse[mcp]' trend-pulse-server --help
uvx --from cf-browser-mcp cf-browser-mcp --help
uvx --from notebooklm-skill notebooklm-mcp --help

Add to your project's .mcp.json:

{
  "mcpServers": {
    "trend-pulse": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "trend-pulse[mcp]", "trend-pulse-server"]
    },
    "cf-browser": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "cf-browser-mcp", "cf-browser-mcp"]
    },
    "notebooklm": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "notebooklm-skill", "notebooklm-mcp"]
    }
  }
}

Or add to Claude Desktop App config (~/Library/Application Support/Claude/claude_desktop_config.json) with the same format.


MCP Server Setup

The app uses 3 MCP servers — all optional, the app works with any combination.

Quick Setup (uvx — recommended)

npx @claude-world/studio setup-mcp

This pre-caches all 3 servers via uvx. No cloning, no path config. Studio auto-detects uvx at runtime.

To update: npx @claude-world/studio setup-mcp --update

Manual Setup (venv)

See detailed MCP setup guide for per-server installation with local venvs.

MCP Auto-Detection

Studio resolves MCP servers in this order:

  1. Settings UI — paths configured via Settings page (stored in SQLite)
  2. Environment variables.env file or exported vars
  3. uvx fallback — if uvx is on PATH, uses cached packages automatically

Use studio settings detect (CLI) or Settings > Scan System (UI) to check what's available.


Production Pipeline: End-to-End

Step 1: Install & Configure

npm install -g @claude-world/studio
npx @claude-world/studio setup-mcp
studio serve

Step 2: Add Social Accounts

Via UI: Settings > Social Accounts

Via CLI:

studio account create \
  --name "My Brand" --handle "@mybrand" \
  --platform threads --token YOUR_TOKEN

Step 3: Run the Pipeline

Web UI: Click a pipeline card (Freestyle / Custom Topic / Custom + Media)

CLI (headless):

studio chat --message "Find trending topics, research the best, write and publish" --json

Scheduled: Settings > Scheduled Tasks — cron + per-account targeting + quality gates

Step 4: Monitor

studio status                     # Server health
studio session list --json        # Sessions
studio history --limit 20 --json  # Publish history

CLI

Full CLI with 23 commands. All commands support --json for programmatic use.

# Server
studio serve                    # Start web UI
studio status                   # Check if running

# Sessions
studio session list
studio session create --title "Research" --workspace /path
studio session get <ID>
studio session rename <ID> --title "New"
studio session delete <ID>
studio session messages <ID> --limit 20

# Chat (WebSocket streaming)
studio chat --message "Find trends" --json
studio chat --session <ID> --message "Publish the best"
echo "What's trending?" | studio chat --json
studio interrupt <ID>

# Accounts
studio account list
studio account create --name "Main" --handle "@me" --platform threads --token TOKEN
studio account update <ID> --token NEW_TOKEN
studio account delete <ID>

# Settings
studio settings get
studio settings detect          # Auto-detect MCP tools
studio settings apply           # Apply detected values
studio settings set --language en

# Publishing (all Threads post types)
studio publish --account <ID> --text "Hello!" --score 85
studio publish --account <ID> --text "Vote!" --poll "A|B|C"
studio publish --account <ID> --text "Look!" --image URL
studio publish --account <ID> --text "Watch" --video URL
studio publish --account <ID> --text "Slides" --carousel URL1 URL2 URL3
studio publish --account <ID> --text "Post" --link-comment URL
studio history --limit 10

# Files
studio file list <SESSION_ID> --depth 2
studio file read <SESSION_ID> src/index.ts

Global flags: --json, --port N (env: STUDIO_PORT), --host H (env: STUDIO_HOST)

MCP setup wizard: npx @claude-world/studio setup-mcp


Security

This is a local-only development tool. It runs Claude with full tool access on your machine.

  • Binds to 127.0.0.1 only (not exposed to network)
  • WebSocket origin verification (exact port whitelist)
  • CORS restricted to localhost dev ports
  • Workspace containment: AI agent restricted to session workspace
  • File API: realpath + workspace-only containment (symlink-safe)
  • Path traversal rejected on both client and server
  • Session workspace validated at creation (system paths blocked)
  • Publishing via native fetch — no Python/shell dependency
  • XSS protection via rehype-sanitize
  • Session isolation: WS messages filtered by sessionId
  • Idle session eviction (30min TTL)
  • Credentials stored in local SQLite only

Warning: Do NOT expose this server to the internet. The AI agent has Bash, Read, Write, and Edit access within the workspace.

Contributing

Issues and PRs welcome. Please open an issue first to discuss major changes.

License

MIT