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

@xulia/cli

v0.1.0

Published

Keyboard-first terminal interface for coding agents

Readme

xulia

xulia is a keyboard-first terminal interface for running multiple coding-agent sessions side by side.

Supported agents:

  • Claude Code through the official TypeScript Agent SDK
  • Codex through codex app-server
  • OpenCode through the official SDK and headless server
  • Cursor is listed as experimental and unavailable

Install

Install Bun, then install xulia globally:

npm install --global @xulia/cli

Codex and OpenCode must already be authenticated in their own CLIs. Claude Code is bundled by the Agent SDK and uses your existing Claude authentication.

Run

Start xulia from the project directory the agents should work in:

xulia

Session history is stored in ~/.xulia/xulia.db. A new session is not written to the database until its first non-empty message is sent.

Inside a Git repository, choose worktree, then list or new, from the command palette to switch worktrees or create a detached worktree under ~/.xulia/worktrees/<repository>/<name>. New sessions run in the selected worktree while sessions in other worktrees keep running.

xulia remembers the last selected model and reasoning variant for each agent. New sessions reuse that selection when it is still available; open the command palette and choose model (also searchable as models) or variant to change it.

Xulia starts with build and read-only plan modes. Tab selects the next mode and Shift+Tab the previous one. Modes can choose a different model per provider in ~/.xulia/config.json (or $XULIA_CONFIG):

{
  "defaultMode": "build",
  "modes": [
    { "name": "plan", "readOnly": true, "models": { "codex": { "model": "gpt-5.5", "variant": "high" } } },
    { "name": "fast", "models": { "claude": { "model": "haiku" }, "opencode": { "model": "provider/model-id" } } }
  ]
}

Configured build and plan entries override their defaults; other entries are appended in the order shown. A missing provider entry keeps the session's current model.

Keyboard

| Key | Action | | --- | --- | | Enter | Send message | | Shift+Enter | Insert newline | | Ctrl+N | Create session | | Ctrl+K | Open command palette | | Ctrl+P | Search sessions | | Ctrl+T | Toggle the latest completed thought | | Tab | Select next mode | | Shift+Tab | Select previous mode | | Left/Right | Switch active panel | | Esc | Close dialog or cancel the selected turn | | Ctrl+C | Exit |

Open the searchable command palette to run new, sessions, archives, archive, worktree, model, copy, variant, rename, delete, clear, cancel, usage, thought, tool, or help. model groups model listing and cache refresh, worktree groups listing, creation, and deletion, and copy copies the current path, branch, or worktree name when available. The message input also accepts /sessions, /archives, and /archive directly.

Model lists are cached per agent and project for 24 hours. Choose model, then refresh, to refresh every available provider or one selected provider.

clear starts a fresh native agent context while preserving the local transcript. delete removes xulia's local session record and does not delete the provider CLI's own history.

archive removes the current session from the sidebar without deleting its transcript. Choosing a result from archives restores and opens it.

Development

bun install
bun run start
bun test
bun run typecheck