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

pi-chalin

v0.3.1

Published

Pi Coding Agent extension for routed, memory-aware subagent workflows

Downloads

596

Readme


Why Chalin

Chalin is a Pi Coding Agent extension for work that benefits from deliberate coordination: broad repository analysis, risky edits, multi-step implementation, memory recall, and review-heavy workflows.

The extension keeps small prompts direct. When a task needs more structure, Chalin gives the primary Pi agent a guarded way to route work through focused subagents, preserve handoffs, use memory, and surface what is happening in the TUI.

The product goal is simple: keep the human in command while giving complex engineering work a reliable execution frame.

Features

| Area | Capability | | --- | --- | | Routing | Direct execution for bounded work; routed workflows for broad, risky, or memory-sensitive work. | | Subagents | Built-in scout, planner, worker, reviewer, researcher, delegate, oracle, context-builder, and conflict-resolver agents. | | Workflow shapes | single, chain, parallel, dag, and memory-only plans. | | Memory | Built-in SQLite memory with review, or native Engram memory with optional cloud sync. | | Safety | Approval thresholds, critical-route blocking, recursion guards, single-writer protection, mutation expectation checks, and destructive-action confirmation. | | State | Resumable runs, artifacts, validation contracts, activity monitoring, and cached discovery context. | | TUI | Smart Panel, Settings, Agent Manager, Memory Review, Activity, Artifacts, and WebFetch audit panels. |

Quick Start

Requirements

  • Bun >=1.3.14
  • Pi Coding Agent runtime

Install

pi install npm:pi-chalin

For local development in this repository:

bun install

Load In Pi

pi-chalin is exposed as a Pi extension through package.json:

{
  "pi": {
    "extensions": ["./src/index.ts"]
  }
}

Once Pi loads the package, use /chalin inside a Pi session.

Commands

| Command | Purpose | | --- | --- | | /chalin | Open the Smart Panel. | | /chalin on | Enable autonomous routing for the current project. | | /chalin off | Disable autonomous routing for the current project. | | /chalin settings | Tune routing, safety approvals, memory provider, agent overrides, maintenance, and diagnostics. | | /chalin agents | Inspect agents and override model or thinking settings. | | /chalin memory | Review built-in memory records or Engram observations. | | /chalin memory <query> | Search the configured memory backend. | | /chalin artifacts | Open resumable task artifacts. | | /chalin artifacts <feature> | Resume context for a named feature artifact. | | /chalin activity | Inspect the active or latest run. | | /chalin web | Review cached WebFetch bundles and freshness. | | /chalin status | Print routing, autonomy, safety, memory, agent, and guard status. |

Tools

The extension registers Pi tools for the primary agent. The primary agent stays in control; Chalin provides the execution frame when routing is useful.

| Tool | Purpose | | --- | --- | | chalin_route | Run a selected workflow with concrete agents, topology, risk, memory, and artifact needs. | | chalin_resume | Resume the latest paused or stale Chalin run. | | chalin_interview | Ask blocking clarification questions before planning or execution. | | chalin_memory_search | Retrieve compact durable memory during direct or routed work. | | chalin_memory_write | Save durable project or user knowledge through WriteGuard. | | chalin_memory_revise | Correct stale or inaccurate memory with evidence. | | chalin_artifact_resume | Load resumable task context from stored artifacts. | | chalin_web_search | Search or fetch current web context through the audited web layer. |

Child agents receive only the guarded tools appropriate to their role, capability set, and budget.

Configuration

Project configuration lives at:

.pi-chalin/config.json

User-level configuration and agents live under:

~/.pi/chalin/

Useful top-level settings:

{
  "enabled": true,
  "autonomy": "balanced",
  "safety": {
    "approvalRiskThreshold": "medium"
  },
  "memory": {
    "provider": "auto"
  }
}

Use /chalin settings for the supported interactive path. It exposes:

  • routing on/off and autonomy;
  • safety approval threshold, including a no-prompt mode for non-critical routes;
  • memory provider selection;
  • agent override summary and Agent Manager access;
  • maintenance for caches;
  • diagnostics.

Critical routes remain blocked by the safety policy even when approval prompts are disabled.

Memory

Chalin supports three memory modes:

| Provider | Behavior | | --- | --- | | auto | Uses Engram when reachable, otherwise falls back to built-in memory. | | engram | Uses Engram as the source of truth for memory surfaces and tools. | | pi-chalin | Uses the built-in SQLite memory store. The UI labels this mode as built-in. |

Built-in memory keeps the review workflow: pending candidates can be approved, rejected, revised, or deleted. Destructive memory actions require confirmation.

Engram mode uses Engram directly for memory listing, search, write, revise, and routed workflow context. When the configured Engram runtime is local and autoSync is enabled, Chalin can use Engram's local-first cloud sync path through the runtime environment.

Common Engram environment variables:

ENGRAM_URL
ENGRAM_PORT
ENGRAM_BIN
ENGRAM_CLOUD_TOKEN
PI_CHALIN_MEMORY_PROVIDER

Agents

Agents are Markdown files with YAML frontmatter. They can come from three scopes:

agents/*.md                built-in package agents
.pi-chalin/agents/*.md     project agents
~/.pi/chalin/agents/*.md   user agents

Resolution order:

name             -> project/name, then user/name, then built-in/name
project/name     -> project only
user/name        -> user only
built-in/name    -> built-in only

Project agents win locally, user agents remain portable, and built-ins provide the default catalog.

Architecture

Chalin is a modular monolith. The extension keeps runtime boundaries explicit without splitting the product into premature services.

src/index.ts              extension registration
src/commands.ts           /chalin command tree
src/tools.ts              Pi tool definitions
src/autoroute.ts          prompt-time routing guidance
src/kernel.ts             route validation and orchestration
src/runner.ts             worker execution, resume, and run metrics
src/agents.ts             agent catalog and resolution
src/config.ts             config, safety, autonomy, and overrides
src/memory.ts             built-in memory store
src/memory-provider.ts    built-in and Engram memory backends
src/artifacts.ts          resumable task state and handoffs
src/webfetch.ts           audited external context cache
src/worktrees.ts          isolated writer worktrees
src/ui.ts                 TUI panels and confirmations
src/schemas.ts            shared runtime types

Runtime state is project-local:

.pi-chalin/config.json
.pi-chalin/agents/
.pi-chalin/artifacts/
.pi-chalin/cache/
.pi-chalin/memory.sqlite
.pi-chalin/runs/

Development

Fast verification:

bun run typecheck
bun run test

Focused evaluator scripts are available for routing, memory, trace, trajectory, and workflow quality work:

bun run eval
bun run eval:memory
bun run eval:trace
bun run eval:workflow

Use the broader evaluator path when changing routing policy, runner behavior, child-tool budgets, memory semantics, or workflow scoring.

Design Principles

  • Route only when routing improves quality.
  • Keep the human in command.
  • Make autonomy observable.
  • Prefer durable memory with review.
  • Treat safety gates as product behavior.
  • Verify behavior with tests and evaluators.

License

Chalin is distributed under an MIT-style license with an attribution addendum. See LICENSE.