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

@ironmussa/funny

v0.1.2

Published

Codex App clone powered by Claude Code — parallel agent orchestration with git worktrees

Downloads

125

Readme

funny

Parallel Claude Code agent orchestration powered by git worktrees

funny is a web UI for orchestrating multiple Claude Code agents in parallel. It uses git worktrees to let each agent work on its own branch simultaneously without conflicts. Think of it as a Codex App clone powered by the Claude Agent SDK (@anthropic-ai/claude-agent-sdk).

Features

  • Parallel agent execution — Run multiple Claude Code agents simultaneously on different branches
  • Git worktree isolation — Each agent gets its own isolated working directory
  • Real-time monitoring — WebSocket-based live updates for all agent activities
  • Git integration — Built-in diff viewer, staging, commits, and PR creation
  • Kanban board — Drag-and-drop task management with columns (backlog, in progress, review, done, archived)
  • Search — Find threads by title, branch name, status, or message content with real-time filtering
  • Analytics dashboard — Track task creation, completion rates, stage distribution, and cost metrics over time
  • MCP support — Model Context Protocol integration
  • Automation scheduling — Cron-based recurring tasks
  • Mobile support — Responsive mobile view with touch-friendly navigation for on-the-go monitoring

Installation

Quick Start (bunx)

No installation needed! Run directly with:

bunx @ironmussa/funny

The app will start and open at http://localhost:3001

Global Installation

bun install -g @ironmussa/funny
funny

From Source

git clone https://github.com/ironmussa/funny.git
cd funny
bun install
bun run build
bun start

Requirements

  • Bun >= 1.0.0 (install from bun.sh)
  • Claude CLI installed and authenticated (claude.ai/code)
  • Git installed and configured

Usage

Starting the Server

# Default (port 3001)
funny

# Custom port
funny --port 8080

# Show all options
funny --help

CLI Options

| Option | Description | Default | | ------------------- | ----------------- | ----------- | | -p, --port <port> | Server port | 3001 | | -h, --host <host> | Server host | 127.0.0.1 | | --help | Show help message | - |

Environment Variables

| Variable | Description | Default | | ------------- | ------------------------------------- | --------------- | | PORT | Server port | 3001 | | HOST | Server hostname | 127.0.0.1 | | CORS_ORIGIN | Custom CORS origins (comma-separated) | Auto-configured |

Kanban Board

Threads can be visualized and managed as a Kanban board with five columns:

  • Backlog — Tasks waiting to be started
  • In Progress — Tasks currently being worked on
  • Review — Tasks ready for code review
  • Done — Completed tasks
  • Archived — Archived tasks

Drag and drop cards between columns to update their stage. Cards show thread status, git sync state, cost, and time since last update. Pinned threads appear first in each column. You can create new threads directly from the board and switch between list and board views.

Search & Filtering

Find threads quickly using the search bar. Search matches against:

  • Thread title
  • Branch name
  • Thread status
  • Message content (server-side full-text search with content snippets)

Results highlight matching text. Combine search with filters for status, git state, and mode to narrow results further. Filters sync to URL query parameters so you can share filtered views.

Analytics

The analytics dashboard provides an overview of task activity and costs:

  • Metric cards — Tasks created, completed, moved to review/done/archived, and total cost
  • Stage distribution chart — Pie chart showing current distribution of threads across stages
  • Timeline chart — Bar chart showing task activity over time, grouped by day/week/month/year

Filter analytics by project and time range (day, week, month, or all-time).

Mobile Support

funny includes a dedicated mobile view that automatically activates on screens narrower than 768px. The mobile interface provides a streamlined, touch-friendly experience for monitoring and interacting with your agents on the go.

Mobile features:

  • Stack-based navigation — Projects → Threads → Chat, with back buttons for easy navigation
  • Full chat interaction — Send messages, view agent responses, approve/reject tool calls, and monitor running agents
  • Thread management — Create new threads with model and mode selection directly from your phone
  • Status monitoring — Real-time status badges and agent activity indicators
  • Auto-scrolling — Smart scroll behavior that follows new messages while preserving your scroll position

The sidebar automatically converts to a slide-out drawer on mobile via the shadcn/ui Sheet component.

Development

# Install dependencies
bun install

# Run in development mode (client + server with hot reload)
bun run dev

# Run only server (port 3001)
bun run dev:server

# Run only client (port 5173)
bun run dev:client

# Build for production
bun run build

# Database operations
bun run db:push    # Push schema changes
bun run db:studio  # Open Drizzle Studio

# Run tests
bun test

Architecture

Monorepo Structure

  • packages/shared — Shared TypeScript types
  • packages/server — Hono HTTP server with Claude Agent SDK (port 3001)
  • packages/client — React 19 + Vite SPA (port 5173 in dev)

Tech Stack

Server:

  • Hono (HTTP framework)
  • Claude Agent SDK (@anthropic-ai/claude-agent-sdk)
  • Drizzle ORM + SQLite
  • WebSocket (real-time updates)

Client:

  • React 19
  • Vite
  • Zustand (state management)
  • shadcn/ui (components)
  • Tailwind CSS

Data Storage

All data is stored in:

~/.funny/
├── data.db           # SQLite database (projects, threads, messages)
└── auth-token        # Bearer token for authentication

Git Worktrees

Worktrees are created in .funny-worktrees/ adjacent to your project:

/your-project/
├── .git/
├── src/
└── ...

/your-project-worktrees/
├── feature-branch-1/
├── feature-branch-2/
└── ...

Each worktree is an isolated working directory allowing parallel agent work without conflicts.

Commands

See CLAUDE.md for detailed commands and architecture documentation.

License

MIT

Support

Contributing

Contributions are welcome! Please read CLAUDE.md for development guidelines.


Built with Claude Code