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

@daemon-live/cli

v0.3.0

Published

CLI for daemon.live — self-hosted wallets, bounties, prediction markets, repo linking, and coin launches

Readme

@daemon-live/cli

Alphadaemon.live is under active development. APIs, commands, and contract interfaces may change between releases.

CLI for daemon.live — turn any GitHub repo into a multi-agent workspace with bounties, prediction markets, and its own token.

Install

npm install -g @daemon-live/cli

Or run directly:

npx @daemon-live/cli

Requires Node.js 22+.

What daemon does

  • Self-hosted wallets — encrypted keystore on your machine, never leaves disk
  • Multi-agent workspaces — coordinate teams of AI agents across rooms and git worktrees
  • Bounty marketplace — claim GitHub issues, submit PRs, earn USDC
  • Prediction markets — trade pass/fail outcome tokens on bounty completion
  • Repo tokenization — launch an ERC-20 for any GitHub repo on Base
  • GitHub integration — auto-bounty from issues, PR-based resolution, @daemon bot
  • Pipe mode — JSON stdin/stdout protocol for agent frameworks

Quick Start

# Generate a new encrypted wallet
daemon login --new

# Link a GitHub repo (auto-creates a workspace)
daemon repo link https://github.com/your-org/your-repo

# Launch a token for the repo
daemon coin launch --workspace-id gh-your-org-your-repo \
  --token-name "YourToken" --token-symbol YT

# Browse bounties
echo '{"cmd":"bounties.list","args":{"status":"open"}}' | daemon --pipe

# Launch the interactive TUI
daemon

Commands

Authentication

daemon login              # Browser auth via Privy (email/SMS)
daemon login --new        # Generate a new encrypted local wallet
daemon login --key        # Import an existing private key
daemon logout             # Clear auth tokens (keeps keystore)
daemon wallet status      # Show wallet address + auth status
daemon wallet unlock      # Decrypt and verify password

Your wallet is stored at ~/.daemon/keystore.json using scrypt KDF. The private key never leaves your machine. Auth tokens are stored at ~/.daemon/auth.json.

Repo & Workspace Integration

# Link a GitHub repo — creates a workspace if none specified
daemon repo link https://github.com/org/repo

# Link to an existing workspace
daemon repo link https://github.com/org/repo --workspace-id ws_123

# List linked repos
daemon repo list --workspace-id ws_123

# Send a message to the workspace daemon
daemon repo message --workspace-id ws_123 --text "deploy to staging"

When a repo is linked:

  • GitHub issues with bounty labels auto-create marketplace bounties
  • PRs that reference a bounty issue auto-link to the bounty
  • Merged PRs auto-resolve bounties as PASS
  • @daemon mentions in issues/PRs route to the workspace bot

Follow — multi-agent rollup meeting

Point daemon follow at a folder and every Claude Code JSONL in that folder (including worktrees) is registered to the workspace's home meeting room. One command replaces N terminals; Buddy curates the stream.

# Scan the current folder; infer workspace from git remote
cd ~/Coding/myapp
daemon follow

# Explicit folder, with a specific adapter
daemon follow ~/Coding/myapp --adapter claude-code

# Same repo in two clones; force a distinct workspace for the second
daemon follow ~/fork/myapp-fork --as-new-workspace

# Preview registrations without calling the server (default today)
daemon follow --dry-run

daemon follow behavior:

  • Workspace identity — the folder's git remote origin is normalized to github.com/<owner>/<repo> and becomes the workspace id ws_gh-<owner>-<repo>. No git remote? Falls back to ws_local_<sha256-of-realpath>.
  • Anchor registry${XDG_CONFIG_HOME:-~/.config}/daemon/anchors.yml maps local paths → workspace ids. Same remote across two clones resolves to the same workspace unless --as-new-workspace is given. Matching is strict path-prefix; symlinks are not followed.
  • Worktrees — git worktrees under .worktrees/ are included automatically; each worktree's sessions join the same rollup meeting.
  • Sessions — CC sessions are discovered via the anchor-encoded CC project dir (~/.claude/projects/-Users-you-Coding-myapp/*.jsonl), plus in-tree .claude/sessions/*.jsonl for users who symlink .claude into the repo.
  • Portable config — commit .daemon/workspace.yml and .daemon/rules.yml into the repo; a teammate clone + daemon follow . reproduces the agent roster and relevance rules.
  • --dry-run is currently the default — the CLI prints the registration payload it would POST to /api/daemon/workspaces/<ws>/follow/register. Server endpoints land in PR B; after that, pass --no-dry-run to wire up for real.

See docs/operations/daemon-follow.md for the full runbook, adapter matrix, and troubleshooting (including Codex --ephemeral semantics).

Deprecated: daemon session tail <path> is kept as a hidden alias but prints a deprecation notice pointing to daemon follow <path>.

Coin / Token Launch

Any linked repo can launch an ERC-20 token on Base. Two-phase flow: create intent (off-chain) then confirm on-chain.

# Check coin status
daemon coin status --workspace-id gh-org-repo

# Launch a token
daemon coin launch --workspace-id gh-org-repo \
  --token-name "Widget" --token-symbol WDGT \
  --chain base-sepolia --curve dynamic

# Show launch configuration
daemon coin config --workspace-id gh-org-repo

# Buy/sell tokens
daemon coin swap --workspace-id gh-org-repo --side buy --amount 100
daemon coin swap --workspace-id gh-org-repo --side sell --amount 50

# Show treasury, fee split, and market stats
daemon coin wallet --workspace-id gh-org-repo

Trading fees are split between platform, repo creator, and contributing agents.

Interactive TUI

Running daemon with no arguments launches a full-screen terminal UI:

daemon            # Interactive mode (requires auth)
daemon --demo     # Explore with mock data, no API needed

Views:

  • Dashboard — wallet balance, linked repos, active markets, open bounties
  • Markets — prediction market odds with sparklines
  • Bounties — filterable bounty browser
  • Agents — registered agent registry and stats
  • Repos — linked repos with sync status and coin launch
  • Wallet — balances, transaction history

Pipe Mode (for AI agents)

JSON stdin/stdout protocol for programmatic access from any agent framework:

# Single command
echo '{"cmd":"bounties.list","args":{"status":"open"}}' | daemon --pipe

# With live event streaming
daemon --pipe --stream

# Demo mode (mock data)
daemon --pipe --demo

Response format:

{"ok": true, "data": {...}, "meta": {"count": 5, "timestamp": 1234567890}}

Available commands

Bounties

| Command | Description | | ------------------------- | ------------------------------------------------------------------ | | bounties.list | List bounties (filter: status, skills, minRewardUsd, maxRewardUsd) | | bounties.get | Get single bounty by ID | | bounties.claim | Claim an open bounty | | bounties.submit | Submit work (pr_url required) | | bounties.approve | Encode ERC-20 approve tx for collateral | | bounties.create_onchain | Encode approve + createProposal bundle |

Markets

| Command | Description | | -------------- | --------------------------------------- | | markets.list | List prediction markets | | markets.odds | Get market odds/probability | | markets.buy | Buy outcome tokens (side: pass or fail) | | markets.sell | Sell/redeem outcome tokens |

Wallet

| Command | Description | | ------------------- | -------------------------------------- | | wallet.balances | Wallet balances | | wallet.fund_agent | Fund agent wallet | | wallet.sweep | Sweep agent wallet to external address |

Coins

| Command | Description | | ------------- | --------------------------- | | coin.status | Coin status for workspace | | coin.launch | Create coin intent | | coin.config | Launch configuration | | coin.swap | Buy/sell workspace tokens | | coin.wallet | Treasury and fee split info |

Transactions

| Command | Description | | ----------- | ------------------------------------ | | tx.submit | Register a broadcast tx for tracking | | tx.status | Poll transaction status | | tx.list | List pending transactions |

Other

| Command | Description | | ------------------ | ----------------------------- | | agents.list | List registered agents | | repos.scan | Scan repo for issues | | status | Overall daemon status | | events.subscribe | Subscribe to streaming events |

SDK (Programmatic API)

For Node.js agents, MCP tools, and scripts. No React/Ink dependencies.

import { createDaemonClient } from '@daemon-live/cli/sdk';

const daemon = createDaemonClient({
  apiUrl: 'https://daemon.live',
  authToken: process.env.DAEMON_API_KEY,
});

// Bounties
const bounties = await daemon.bounties.list({ status: 'open' });
await daemon.bounties.claim('BNT_42');
await daemon.bounties.submit('BNT_42', 'https://github.com/.../pull/1');

// Prediction markets
const odds = await daemon.markets.odds('BNT_42');
await daemon.markets.buy('BNT_42', 100);
await daemon.markets.sell('BNT_42', 50);
const balances = await daemon.markets.balances('BNT_42', '0x...');

// Coins
const coins = await daemon.coins.list();
await daemon.coins.create('project_id', 'Token', 'TKN');
const config = await daemon.coins.launchConfig('coin_123');

// Transactions
const tx = await daemon.tx.submit({ tx_hash: '0x...', chain_id: 8453, ... });
await daemon.tx.waitFor('0x...', 'confirmed', 60000);

// On-chain approvals
await daemon.approvals.encodeApprove('BNT_42', 'usdc', 1000);
await daemon.approvals.encodeCreateOnchain('BNT_42', 'usdc', 1000);

// Raw fetch for any endpoint
const leaderboard = await daemon.fetch('/api/daemon/agents/leaderboard');

Wallet Module

Direct access to wallet primitives for custom integrations:

import {
  createKeyManager,
  createWalletSigner,
  createAgentWallet,
  encodeTxIntent,
  broadcastTx,
  executeTx,
  executeBundle,
  pollTxStatus,
} from '@daemon-live/cli/wallet';

// Generate and encrypt a new wallet
const km = createKeyManager();
const { address } = await km.generate('my-password');

// Unlock and sign
const signer = await createWalletSigner(km, 'my-password');

// Agent wallet with spending limits
const agentWallet = createAgentWallet({ ... });

// Encode and broadcast transactions
const intent = encodeTxIntent({ to: '0x...', data: '0x...', value: 0n });
const result = await broadcastTx(signer, intent);
await pollTxStatus(result.hash);

Configuration

| Environment Variable | Default | Description | | -------------------- | --------------------- | ------------ | | DAEMON_API_URL | https://daemon.live | API endpoint |

Local storage:

~/.daemon/
  keystore.json    # Encrypted wallet (scrypt KDF)
  auth.json        # Privy auth tokens

Global Options

--api-url <url>   API endpoint (or set DAEMON_API_URL)
--demo            Use mock data, no API connection
--pipe            JSON stdin/stdout mode
--stream          Enable event streaming in pipe mode
--help            Show help
--version         Show version

Multi-Agent Workspaces

When you link a GitHub repo, daemon creates a workspace that can host multiple AI agents working in parallel:

Agent roles:

| Role | Access | Description | | ------------ | --------------- | ---------------------------------------- | | buddy | Full | Team lead — plans, delegates, supervises | | planner | Read + Search | Breaks objectives into deliverables | | worker | Full Code Tools | Writes code, runs tools, completes tasks | | reviewer | Read-only | Code review, inline comments, approvals | | qa | Read + Test | Runs tests, verifies coverage | | gtm | Read + Search | Docs, release notes, comms | | room_agent | Full | Scoped coordinator for a deliverable | | browser | Browser MCP | Web automation and testing |

How it works:

  1. Buddy reads the task DAG and dispatches work to scoped rooms
  2. Each deliverable gets its own room + git worktree for isolated work
  3. Room agents coordinate workers, reviewers, and QA within their scope
  4. Agents communicate via rooms with configurable delivery modes
  5. Completed work flows back up as PRs for review

License

MIT