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

@ducci/jarvis

v1.0.101

Published

A fully automated agent system that lives on a server.

Downloads

2,660

Readme

Jarvis

A self-hosted AI agent that runs as a background server. Chat with it via a web UI or Telegram, give it tools to run shell commands and manage files, and schedule recurring tasks — all powered by any model on OpenRouter, z.ai, or the Anthropic API.

Features

  • Agent loop — runs tools autonomously, hands off to a fresh context when it hits the iteration limit, and keeps going until the task is done
  • Web UI — built-in chat interface served at http://localhost:18008
  • Telegram — optional channel adapter; chat from your phone, send photos, get proactive notifications
  • Cron scheduler — schedule recurring or one-time tasks in plain English; agent runs them autonomously and can notify you via Telegram
  • Skills — Markdown-defined workflows the agent discovers and follows for specific task types
  • Custom tools — define tools in JSON (name, description, JS code); the agent picks them up without a restart
  • Multi-provider — OpenRouter, z.ai, or Anthropic directly (with prompt caching)
  • Persistent sessions — full conversation history per session, sliding context window

Quick start

npm i -g @ducci/jarvis
jarvis setup       # configure API key, model, and optionally Telegram
jarvis start       # start the background server (auto-restarts on crash)

Open http://localhost:18008 to use the chat UI.

jarvis stop        # stop the server
jarvis status      # show PID, uptime, restart count

Recommended models

Any OpenRouter model works, but here's what's worth trying right now:

| Model | Provider | Notes | |---|---|---| | glm-5 | z.ai directly | Personal pick — strong at coding and tool use, great value |

z.ai tip: z.ai offers a "Coding Plan Pro" subscription that gives you direct, high-rate access to GLM-5. If you do a lot of agentic coding tasks, it's worth it. Run jarvis setup and select z.ai as your provider — it will configure the endpoint and model automatically.

Fallback recommendation: set fallbackModel to openrouter/auto in settings.json so failed requests automatically retry on a capable free model.

Docs

Development

npm run dev        # start server with nodemon (auto-reload)

For UI hot-reload, run both the server and the Vite dev server:

npm run dev        # server on :18008
cd ui && npm install && npm run dev   # UI on :5173, proxies /api to :18008

Build the UI for production:

cd ui && npm run build   # outputs to ui/dist/, served automatically by the server

Security

Jarvis is designed for local or private server use only. The API has no authentication — do not expose port 18008 to the public internet. The exec tool runs shell commands with the same permissions as the server process.

If you run Jarvis on a VPS, make sure your firewall only allows what's necessary. With ufw:

ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp        # SSH
ufw enable

Ports like 18008 stay closed to the outside world — access the UI via an SSH tunnel instead:

ssh -L 18008:localhost:18008 user@your-vps

Data

All runtime data lives in ~/.jarvis/ and is never stored in the repo:

  • ~/.jarvis/.env — API keys
  • ~/.jarvis/data/config/settings.json — model, port, channel config
  • ~/.jarvis/data/conversations/ — session history
  • ~/.jarvis/data/tools/tools.json — tool registry
  • ~/.jarvis/data/skills/ — skill definitions
  • ~/.jarvis/logs/ — per-session JSONL logs, cron logs, PM2 stdout