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

@aion0/forge

v0.2.3

Published

Unified AI workflow platform — multi-model task orchestration, persistent sessions, web terminal, remote access

Readme


Forge turns Claude Code into a full web-based vibe coding platform. Open your browser, start coding with AI from anywhere — your iPad, phone, or any device with a browser.

No API keys required. Runs on your existing Claude Code CLI subscription. Your code stays on your machine.

Features

| Feature | Description | |---------|-------------| | Vibe Coding | Browser-based tmux terminal. Multiple tabs, persistent sessions that survive refresh, browser close, and server restart | | Remote Access | One-click Cloudflare Tunnel — secure public URL, zero config, no account needed | | Task Queue | Submit tasks to Claude Code in the background. Live streaming output, cost tracking, session continuity | | Docs Viewer | Render Obsidian vaults / markdown directories with a dedicated Claude Console | | Project Manager | Browse projects, view files, git status, commit, push, pull — all from the browser | | Demo Preview | Preview local dev servers through the tunnel with a dedicated Cloudflare URL | | Telegram Bot | Submit tasks, check status, control tunnel, take notes — all from your phone | | File Browser | Code viewer with syntax highlighting, git changes, diff view, multi-repo support | | YAML Workflows | Define multi-step flows that chain Claude Code tasks together | | CLI | Full command-line interface for task management |

Installation

npm (recommended)

npm install -g @aion0/forge
forge-server

From source

git clone https://github.com/aiwatching/forge.git
cd forge
pnpm install
pnpm dev

Options

forge-server              # Production (auto-builds if needed)
forge-server --dev        # Development with hot-reload
forge-server --background # Run in background, logs to ~/.forge/forge.log
forge-server --stop       # Stop background server
forge-server --rebuild    # Force rebuild

Prerequisites

  • Node.js >= 20
  • tmuxbrew install tmux (macOS) / apt install tmux (Linux)
  • Claude Code CLInpm install -g @anthropic-ai/claude-code

Quick Start

  1. Start Forge

    forge-server
  2. Open browserhttp://localhost:3000

  3. Log in — password is auto-generated and printed in the console:

    [init] Login password: a7x9k2 (valid today)

    Forgot it? Run forge password

  4. Configure projects — Settings → add your project directories

  5. Start vibe coding — open a terminal tab, run claude, and go

Remote Access

Access Forge from anywhere — your phone, iPad, or another computer:

  1. Click the tunnel button in the header
  2. Forge auto-downloads cloudflared and creates a temporary public URL
  3. Open the URL on any device — protected by the daily login password

The tunnel URL changes each time. Use the Telegram /tunnel_password command to get it on your phone.

Telegram Bot

Control Forge from your phone. Create a bot via @BotFather, add the token in Settings.

| Command | Description | |---------|-------------| | /task | Create a task (interactive project picker) | | /tasks | List tasks with quick-action numbers | | /peek | AI summary of a Claude session | | /docs | Docs session summary or file search | | /note | Quick note — sent to Docs Claude | | /tunnel_start | Start Cloudflare Tunnel | | /tunnel_stop | Stop tunnel | | /tunnel_password <pw> | Get login password + tunnel URL |

Whitelist-protected — only configured Chat IDs can interact with the bot.

CLI

forge task <project> <prompt>   # Submit a task
forge tasks [status]            # List tasks
forge watch <id>                # Live stream output
forge status <id>               # Task details + result
forge cancel <id>               # Cancel a task
forge retry <id>                # Retry a failed task
forge run <flow-name>           # Run a YAML workflow
forge projects                  # List projects
forge password                  # Show login password

Shortcuts: t=task, ls=tasks, w=watch, s=status, f=flows, p=projects, pw=password

Configuration

All data lives in ~/.forge/:

~/.forge/
├── .env.local            # Environment variables (optional)
├── settings.yaml         # Main configuration
├── password.json         # Daily auto-generated password
├── data.db               # SQLite database
├── terminal-state.json   # Terminal tab layout
├── preview.json          # Demo preview config
├── flows/                # YAML workflow definitions
└── bin/                  # Auto-downloaded binaries
projectRoots:
  - ~/Projects
docRoots:
  - ~/Documents/obsidian-vault
claudePath: claude
tunnelAutoStart: false
telegramBotToken: ""
telegramChatId: ""              # Comma-separated for multiple users
telegramTunnelPassword: ""
notifyOnComplete: true
notifyOnFailure: true
# Fixed auth secret (auto-generated if not set)
AUTH_SECRET=<random-string>

# Optional: AI provider API keys for multi-model chat
# ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...

Architecture

┌──────────────────────────────────────────────────┐
│  Web Dashboard (Next.js 16 + React 19)           │
│  ┌─────────┐ ┌──────┐ ┌────────┐ ┌───────────┐  │
│  │  Vibe   │ │ Docs │ │Projects│ │Demo       │  │
│  │ Coding  │ │      │ │        │ │Preview    │  │
│  └─────────┘ └──────┘ └────────┘ └───────────┘  │
├──────────────────────────────────────────────────┤
│  API Layer (Next.js Route Handlers)              │
├───────────┬───────────┬──────────────────────────┤
│  Claude   │  Task     │  Telegram Bot            │
│  Code     │  Runner   │  + Notifications         │
│  Process  │  (Queue)  │                          │
├───────────┴───────────┴──────────────────────────┤
│  SQLite · Terminal Server · Cloudflare Tunnel    │
└──────────────────────────────────────────────────┘

Tech Stack

| Layer | Technology | |-------|-----------| | Frontend | Next.js 16, React 19, Tailwind CSS 4, xterm.js | | Backend | Next.js Route Handlers, SQLite (better-sqlite3) | | Terminal | node-pty, tmux, WebSocket | | Auth | NextAuth v5 (daily rotating password + OAuth) | | Tunnel | Cloudflare cloudflared (zero-config) | | Bot | Telegram Bot API |

Troubleshooting

PTY device limit exhausted. Increase it:

sudo sysctl kern.tty.ptmx_max=2048

# Permanent
echo 'kern.tty.ptmx_max=2048' | sudo tee -a /etc/sysctl.conf

Fix the AUTH_SECRET so it persists:

echo "AUTH_SECRET=$(openssl rand -hex 32)" >> ~/.forge/.env.local

Roadmap

  • [ ] Multi-Agent Workflow — DAG-based pipelines where multiple Claude Code instances collaborate (design doc)
  • [ ] Pipeline UI — DAG visualization with real-time node status
  • [ ] Additional bot platforms — Discord, Slack
  • [ ] Excalidraw rendering in Docs viewer
  • [ ] Multi-model chat (Anthropic, OpenAI, Google, xAI)

Contributing

Contributions welcome! Please open an issue first to discuss what you'd like to change.

License

MIT