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

phaibel

v4.0.41

Published

AI personal agent that dynamically assembles executable processes from composable code blocks — powered by FeralCCF

Downloads

2,272

Readme

Phaibel

An AI-powered personal assistant that manages your tasks, events, notes, goals, people, and more — all stored as plain Markdown files in a local "vault" folder.

Choose from 4 personalities and name your agent to make it truly yours.

  ____  _           _ _          _
 |  _ \| |__   __ _(_) |__   ___| |
 | |_) | '_ \ / _` | | '_ \ / _ \ |
 |  __/| | | | (_| | | |_) |  __/ |
 |_|   |_| |_|\__,_|_|_.__/ \___|_|

 Your Intelligent Personal Assistant

 ┌─────────────────────────────────────────────┐
 │  "remind me to call the dentist tomorrow"   │
 └──────────────────┬──────────────────────────┘
                    │
                    ▼
 ┌──────────┐  ┌──────────┐  ┌──────────┐
 │ Classify │─▶│ Create   │─▶│ Set Due  │
 │ Request  │  │ Task     │  │ Date     │
 └──────────┘  └──────────┘  └────┬─────┘
                                  │
                    ┌─────────────┘
                    ▼
 ┌──────────┐  ┌──────────┐
 │ Link to  │─▶│ Respond  │
 │ Calendar │  │ to User  │
 └──────────┘  └──────────┘

 Every request builds a unique process graph.

Quick Start

  1. Install and create a vault

    npm install -g phaibel
    mkdir my-vault && cd my-vault
    phaibel init
  2. Configure an API key (prompted during init)

    Requires a key from OpenAI and/or Anthropic

  3. Open the web client at http://localhost:3737

    The service starts automatically after init. On first visit you'll choose a personality, name your agent, and optionally fill in some context about yourself. Then just start chatting:

    remind me to call the dentist tomorrow
    what's on my plate today?
    create a goal to run a half marathon by June

Personalities

| Personality | Style | |-------------|-------| | British Butler | Formal, composed, measured. "Very good, sir." | | Rock Star | High-energy, irreverent, enthusiastic. "Let's shred this to-do list!" | | Executive Assistant | Professional, crisp, efficient. "Done. Next item on your agenda." | | Friend | Warm, casual, supportive peer. "Hey! I took care of that for you." |

CLI Commands

The CLI is an admin toolkit. The web client at http://localhost:3737 is the primary user interface.

Run phaibel --help to see all commands:

| Command | Description | |---------|-------------| | phaibel init | Create a new vault in the current directory | | phaibel config | Manage API keys and LLM provider settings | | phaibel service start\|stop\|restart\|status | Manage the background daemon | | phaibel queue status\|pause\|resume\|clear | Inspect the task queue | | phaibel index stats\|rebuild\|graph\|neighbors | Manage the entity relationship graph | | phaibel cron list\|enable\|disable\|run | Manage scheduled background jobs | | phaibel calendar add\|remove\|list\|sync | Manage Google Calendar ICS feeds | | phaibel feral | Inspect the Feral CCF flow engine | | phaibel sync | Git-based vault sync | | phaibel setup | Update your name and preferences | | phaibel type list\|add\|edit\|remove | Manage entity type schemas | | phaibel entity <type> [action] | CRUD for any entity type | | phaibel skill | Manage MCP skill servers | | phaibel tool <name> [input] | Run a registered tool directly | | phaibel tools | List all available tools |

Content Types

| Type | Description | |------|-------------| | todo | Tasks with priority, status, and due dates | | event | Calendar events with start/end times and locations | | note | Freeform notes | | todont | Things you're deliberately not doing |

Your agent creates new content types as needed — just ask it to track something new.

How It Works

Phaibel writes a unique software process for every request. Instead of following rigid workflows, it dynamically assembles a process graph tailored to what you asked for.

This is powered by Feral CCF (Catalog-Code Framework):

  • NodeCode — reusable logic blocks (e.g., "query todos", "format as markdown", "call LLM")
  • CatalogNodes — configured instances with default settings
  • ProcessNodes — nodes wired together into a directed graph for a specific request

The web UI visualizes the process created for each action so you can see exactly what happened.

BYOK (Bring Your Own Key)

Your keys are stored locally in ~/.phaibel/secrets.json and never leave your machine.

phaibel config add-provider openai
phaibel config add-provider anthropic

When both providers are configured, Phaibel picks the best model for each task:

| Capability | What it does | OpenAI default | Anthropic default | |------------|-------------|----------------|-------------------| | reason | Complex thinking | gpt-4o | claude-sonnet-4-6 | | chat | Conversation | gpt-4o | claude-sonnet-4-6 | | summarize | Condensing info | gpt-4o-mini | claude-haiku-4-5 | | categorize | Classification | gpt-4o-mini | claude-haiku-4-5 | | format | Text formatting | gpt-4o-mini | claude-haiku-4-5 | | embed | Vector embeddings | text-embedding-3-small | (not supported) |

Override any mapping:

phaibel config set-capability reason anthropic claude-sonnet-4-6
phaibel config reset-capability reason

Where Things Live

~/.phaibel/
  secrets.json         # API keys (never committed)
  phaibel.pid          # Daemon PID
  phaibel.sock         # Unix socket

your-vault/
  .vault.md            # Vault root context (read by the LLM)
  .state.json          # User profile (name, personality, agent name)
  .phaibel/            # Vault-scoped config
    config.json        # LLM capability overrides
    entity-types.json  # Entity type definitions
    logs/              # Chat session logs
    processes/         # Saved Feral processes
  todos/
  events/
  notes/
  goals/
  people/
  recurrences/
  todonts/
  inbox/

Every entity is a plain .md file. Edit them with any text editor, sync with Git, or back up however you like.

Environment Variables

| Variable | Description | |----------|-------------| | PHAIBEL_VAULT | Override vault root path | | PHAIBEL_SERVICE=1 | Internal: marks the process as the daemon | | PHAIBEL_DEBUG=1 | Enable verbose debug output |

Development

git clone https://github.com/clift-labs/phaibel.git
cd phaibel
npm install
npm run build
npm link
npm run dev          # Run with tsx (hot reload)
npm test             # Run unit tests
npm run test:all     # Run all tests including integration

Requirements

  • Node.js >= 18
  • An API key from OpenAI and/or Anthropic

License

MIT © Clift Labs