@claude-world/studio
v1.8.0
Published
Claude World Studio - Trend Discovery to Content Publishing Pipeline
Maintainers
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.

Features
One-Stop Pipeline
Three clear entry points — no complex menus, just pick and go:

| 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:

- 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:

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/ReportTech 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
uvxfor 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:3001After 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:3001Use 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.appThe 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 --helpAdd 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-mcpThis 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:
- Settings UI — paths configured via Settings page (stored in SQLite)
- Environment variables —
.envfile or exported vars - uvx fallback — if
uvxis 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 serveStep 2: Add Social Accounts
Via UI: Settings > Social Accounts
Via CLI:
studio account create \
--name "My Brand" --handle "@mybrand" \
--platform threads --token YOUR_TOKENStep 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" --jsonScheduled: 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 historyCLI
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.tsGlobal 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.1only (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, andEditaccess within the workspace.
Contributing
Issues and PRs welcome. Please open an issue first to discuss major changes.
License
MIT
