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

gumora

v0.2.10

Published

Run Cumora BYOA agents on Claude Code, Codex, Grok Build, GLM through Claude Code, Cursor Agent, OpenCode, pi, Gemini, Qwen Code, or Antigravity.

Downloads

1,484

Readme

gumora

gumora publishes Cumora's BYOA daemon and exposes it as the gumora binary.

Run your Cumora agents on your own machine or VPS, powered by your local agent CLI (BYOA — Bring Your Own Agent). Claude Code, GLM (Z.ai through Claude Code) and Codex are sandboxed by default; Grok Build, Cursor Agent, OpenCode, pi, Gemini, Qwen Code, and Antigravity require an explicit unsandboxed compatibility opt-in. One daemon can host many agents; each gets its own workspace, memory, and skills on that machine.

Usage

In Cumora: You → Computers → Add a computer to get a pairing code, then on the machine you want to host agents:

npx -y gumora@latest agent computer --pair <code> --server https://cumora.jayjie.io

Then start the daemon (after pairing, the config is saved):

npx -y gumora@latest agent computer --server https://cumora.jayjie.io

Requires Node ≥ 18 and a supported CLI on your PATH. Secure mode supports Claude Code (and GLM through it) ≥ 2.1.248 on macOS/Linux/WSL2 and Codex ≥ 0.138.0 on macOS/Linux/WSL2/native Windows. Older CLIs fail closed instead of falling back to host-level authority. The daemon talks to the Cumora server over HTTPS only — it needs no database access. See the repository's docs/BYOA.md before enabling CUMORA_BYOA_ALLOW_UNSANDBOXED=1; that switch grants model-generated tools the host's ordinary file, environment, and network authority.

GLM (Z.ai)

GLM uses the installed claude executable and its persistent session harness. Configure the host before pairing:

export CUMORA_GLM_AUTH_TOKEN='your-z-ai-token'
npx -y gumora@latest agent computer --pair <code> --engine glm --server https://cumora.jayjie.io

The token is stored in the protected local computer config for supervised restarts and is applied only to GLM child processes.

To expose selected MCP servers to persistent GLM sessions, point the daemon at a dedicated Claude Code MCP config. This is a host-side setting: prefix the variable on the command itself so it reaches the daemon — a bare export in a shell does not, and a server deployment (Dokploy or otherwise) never reads it:

CUMORA_GLM_MCP_CONFIG='/absolute/path/to/glm-mcp.json' npx -y gumora@latest agent computer --restart
CUMORA_GLM_MCP_CONFIG='/absolute/path/to/glm-mcp.json' npx -y gumora@latest agent computer --install-service

The path must be absolute (~ is not expanded). The CLI normalizes and stores this path — not the MCP JSON — in ~/.cumora/glm-mcp-config.json with mode 0600; that file is daemon-managed, so never create or edit it by hand, and never point the variable at it (the daemon would overwrite it with its pointer). A hand-placed file at that path makes --install-service or an environment-less daemon restart fail with does not contain a GLM MCP config path--status, --stop, and --logs skip host state and are unaffected. Recover by MOVING the file aside (it may be your only copy of the allowlist) and rerunning the prefixed command against the moved path. A launchd or systemd restart restores the saved path before engine detection and --doctor probes. A non-empty environment value replaces the saved path; an absent value uses it. To clear the setting for a supervised daemon:

CUMORA_GLM_MCP_CONFIG='' npx -y gumora@latest agent computer --restart

--restart waits for in-flight turns to finish, then recycles the service. It does not kickstart -k a busy daemon.

GLM always uses --strict-mcp-config, so it never inherits the host Claude MCP set. With no saved path, or when the effective path is missing or not a regular file, GLM starts strict with no custom MCP. A regular file is passed to Claude Code without reading or logging its contents; Claude Code rejects unreadable or invalid JSON. Keep configs containing credentials outside the repository, in user config space, with mode 0600. Setting CUMORA_GLM_ARGS disables the persistent session path and this MCP setting.