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-provider-tama

v0.10.0

Published

Pi agent extension for tama local AI server auto-discovery and model configuration

Readme

pi-provider-tama

Pi agent extension that auto-discovers models from a local tama server and registers them as a provider.

What it does

When pi starts (or on /reload), this extension:

  1. Auto-detects tama on ports 11434 or 8080
  2. Fetches available models from tama's API
  3. Registers a tama provider in pi with all discovered models

Models appear in /model immediately — no manual models.json editing needed.

Installation

Option A: npm (recommended)

pi install npm:pi-provider-tama

Option B: git

pi install git:github.com/danielcherubini/pi-provider-tama

Use -l to install to project scope (.pi/settings.json) instead of global:

pi install -l npm:pi-provider-tama

Option C: Local development

git clone https://github.com/danielcherubini/pi-provider-tama.git
cd pi-provider-tama
npm install

# Install from local path
pi install ./pi-provider-tama

Configuration

By default, the extension auto-detects tama on 127.0.0.1:11434 and 127.0.0.1:8080.

No configuration is needed if tama is running locally on the default port.

Remote tama server

Add the tama URL to ~/.pi/agent/settings.json:

{
  "packages": ["npm:pi-provider-tama"],
  "pi-provider-tama": {
    "url": "http://myserver:11434"
  }
}

Or use the TAMA_URL environment variable (takes priority over settings.json):

export TAMA_URL=http://myserver:11434

Priority order: TAMA_URL env var → settings.json → auto-detect localhost

Authentication

If your tama instance is gated behind a bearer token, configure one of:

  1. TAMA_TOKEN environment variable (highest priority):

    export TAMA_TOKEN=your-token-here
  2. token field in ~/.pi/agent/settings.json:

    {
      "packages": ["npm:pi-provider-tama"],
      "pi-provider-tama": {
        "url": "https://tama.example.com",
        "token": "your-token-here"
      }
    }

The token is sent as Authorization: Bearer <token> on both model discovery and inference requests, and is used as pi's apiKey for the registered provider. When unset, no auth header is sent (fine for localhost).

Priority order: TAMA_TOKEN env var → settings.json token → none

How it works

The extension is an async factory: pi awaits it before resolving which models are available, so every tama model is registered before pi decides what's selectable. No caching layer, no sync pre-registration dance.

On startup the factory:

  1. Resolves the tama URL/token (env → settings.json → auto-detect localhost).
  2. Fetches the live model list from /tama/v1/opencode/models.
  3. Calls pi.registerProvider("tama", …) with every discovered model.

It also re-runs the same flow on session_start, so /reload picks up models that were added to tama after pi started.

Requires pi with async-factory support (pi-mono ≥ Jan 2026, commit aea9f843). If tama is offline when pi boots, no tama models register — bring tama up and run /reload.

Discovered models are mapped to pi's provider format:

| Tama field | Pi field | Fallback | | ----------------------------------- | --------------- | ----------------------------- | | id (lowercased HF repo) | model id | — | | name (pretty display) | model name | id | | context_length or limit.context | contextWindow | 128000 | | limit.output | maxTokens | contextWindow / 16 or 8192| | modalities.input | input | ["text"] |

All models are registered with:

  • api: "openai-completions" (OpenAI-compatible)
  • reasoning: false
  • cost: { input: 0, output: 0, ... } (local = free)
  • compat: { supportsDeveloperRole: false, supportsReasoningEffort: false }

Migrating from pi-tama

This package was previously published as pi-tama. To migrate:

  1. Reinstall: pi install npm:pi-provider-tama
  2. Rename the settings key in ~/.pi/agent/settings.json from "pi-tama" to "pi-provider-tama"
  3. Uninstall the old package

Development

npm install
npm test          # Run tests in watch mode
npm run test:run  # Run tests once
npm run typecheck # Type check

Requirements

  • tama running locally with tama serve
  • pi agent

License

MIT