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

@spike-land-ai/vibe-dev

v0.1.1

Published

Lightweight Docker-based development workflow for vibe-coded apps

Downloads

46

Readme

vibe-dev

Lightweight Docker-based development workflow for vibe-coded apps.

Features

  • 📁 Downloads agent files locally for fast reads
  • 🔄 Auto-syncs code changes to testing.spike.land
  • ♻️ Auto-reloads preview iframe when files change
  • 🤖 Claude Code integration via MCP tools
  • 📬 Redis queue polling for agent message processing
  • 🐳 Runs in Docker for isolation and portability

Quick Start

# 1. Start the dev container
cd packages/vibe-dev
docker compose up -d

# 2. Open a codespace for development
docker compose exec vibe-dev yarn dev --codespace my-app

# 3. Edit files in ./live/ directory
# Changes auto-sync to https://testing.spike.land/live/my-app

Environment Variables

Create a .env file:

# Required: Claude Code OAuth token (from spike-land-nextjs/.env.local)
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-xxx

# Required: spike.land API key (for MCP tools)
SPIKE_LAND_API_KEY=your-spike-land-key

# Optional: Custom testing.spike.land URL
TESTING_SPIKE_LAND_URL=https://testing.spike.land

MCP Tools Available

spike-land MCP

  • codespace_update: Create/update React code in codespaces
  • codespace_run: Transpile and run code
  • codespace_screenshot: Get a screenshot of the app
  • codespace_link: Get shareable link

Playwright MCP

  • Browser automation for testing and screenshots
  • Navigate, click, type, screenshot
  • Full Chromium support

Architecture

┌─────────────────────────────────────────────────────┐
│                   Docker Container                   │
│  ┌─────────────┐     ┌──────────────┐              │
│  │ Claude Code │────▶│ vibe-dev CLI │              │
│  │    (MCP)    │     │              │              │
│  └─────────────┘     └──────┬───────┘              │
│                             │                       │
│  ┌─────────────┐     ┌──────▼───────┐              │
│  │ Local Files │◀───▶│ File Watcher │              │
│  │  ./live/    │     │  (chokidar)  │              │
│  └─────────────┘     └──────┬───────┘              │
└─────────────────────────────│───────────────────────┘
                              │ PUT /live/{id}/api/code
                              ▼
                    ┌─────────────────────┐
                    │ testing.spike.land  │
                    │ (Cloudflare Worker) │
                    │         │           │
                    │    WebSocket        │
                    │    Broadcast        │
                    └─────────┬───────────┘
                              │
                              ▼
                    ┌─────────────────────┐
                    │   Preview Iframe    │
                    │   (auto-reload)     │
                    └─────────────────────┘

CLI Commands

yarn dev

Start the development watcher.

# Start with existing codespace
yarn dev --codespace my-app

# Create new codespace
yarn dev --codespace my-new-app --create

# Watch multiple codespaces
yarn dev --codespace app1 --codespace app2

yarn sync

One-shot sync (no watching).

# Sync local to remote
yarn sync push --codespace my-app

# Sync remote to local
yarn sync pull --codespace my-app

yarn poll

Poll Redis queue and process agent messages. Replaces scripts/agent-poll.ts.

# Start continuous polling (runs in Docker)
docker compose up vibe-agent

# Run once and exit
yarn poll --once

# Show queue statistics
yarn poll --stats

# Custom polling interval
yarn poll --interval 10000

yarn claude

Run Claude Code with MCP tools configured.

# Interactive mode
yarn claude

# One-shot command
yarn claude -p "Update the button color to blue"

File Structure

packages/vibe-dev/
├── Dockerfile
├── docker-compose.yml
├── package.json
├── tsconfig.json
├── src/
│   ├── cli.ts           # CLI entry point
│   ├── watcher.ts       # File watcher
│   ├── sync.ts          # Sync to testing.spike.land
│   ├── agent.ts         # Agent processing logic
│   ├── api.ts           # API client for spike.land
│   └── redis.ts         # Redis client for queue polling
└── live/                # Local code files (volume mount)
    ├── my-app.tsx
    └── my-app.meta.json

Integration with Chat UI

When running inside the chat workflow:

  1. User sends a message in /my-apps
  2. Backend queues the message
  3. vibe-dev container picks up the message
  4. Claude Code edits the local file
  5. Watcher syncs to testing.spike.land
  6. WebSocket broadcast triggers iframe reload
  7. User sees live preview update

Development

# Build the package
yarn build

# Run tests
yarn test

# Build Docker image
docker compose build