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

@evorlive/evor

v0.3.1

Published

Evor host agent — connects your laptop to Evor so AI sessions can read your repo, propose diffs, commit, and push on your behalf.

Downloads

120

Readme

@evorlive/evor

The Evor host agent + CLI — runs on your laptop, connects to Evor, and drives the whole workspace from your shell. The agent executes the work AI sessions request (read your repo, apply diffs, commit under your git identity, push). The CLI gives you scriptable access to projects, tasks, chat, time tracking, organizations, sessions, diffs, and repos.

Evor is a team workspace for shipping software — project boards, tasks, idea boards, releases, real-time chat, time tracking, and conversation-first AI pair programming. You chat, AI plans + proposes changes, you approve, and the changes land as real commits on a branch on your machine.

Quick start

npm install -g @evorlive/evor
evor login

Your browser opens, you click Approve, the agent starts in the background and connects to evor.live.

Requires Node.js 20+.

Drive Evor from the shell

The pairing token saved by evor login doubles as an API key. Every command supports --json for jq pipelines.

evor me                                       # who am I
evor tasks list                               # auto-scopes to current git repo
evor tasks list --status todo --json | jq

# Create + work a task
TASK=$(evor tasks create "Add footer with year" --json | jq -r .id)
evor tasks status $TASK in_progress

# Open an AI session and ask for changes
SID=$(evor sessions create --task $TASK --json | jq -r .id)
evor sessions message $SID "Add a Footer.tsx component and include it in the layout"

# Approve / reject diffs from the chat
evor diffs approve <diffId>
evor diffs reject  <diffId>

# Commit & open the PR
evor sessions push $SID
evor tasks status $TASK review

Workspace beyond tasks

The CLI mirrors the whole web app. Switch between projects, chat with the team, clock in, and inspect orgs without leaving the shell:

evor projects list                            # projects you can see
evor projects get <id>                        # detail, members, repos
evor projects tasks <id> --type dev           # developer tasks
evor projects releases <id> / evor projects ideas <id>

evor chat rooms                               # rooms in your active org (with unread counts)
evor chat messages <roomId> --limit 50
evor chat send <roomId> "shipping the auth fix in 5"
evor chat read <roomId>                       # clears unread + sends read receipt
evor chat dm <userId>                         # open/create a DM

evor clock in / evor clock out                # time tracking
evor clock status / evor clock records --month 5

evor orgs list / evor orgs members <id> / evor orgs online <id>

AI agent integration

evor skill writes an Evor skill/rules file for whichever local AI agent you use. It auto-detects what's installed and drops the right file in the right place:

| Agent | Output | | -------------- | ----------------------------------------------- | | Claude Code | ~/.claude/skills/evor/SKILL.md | | Cursor | ~/.cursor/rules/evor.mdc | | Codex / OpenAI | ~/.codex/AGENTS.md | | Aider | ~/.aider/CONVENTIONS.md |

evor skill                       # auto-detect installed agents and install
evor skill --list                # show what was detected (no writes)
evor skill --target claude,cursor
evor skill --project             # install per-repo (./.claude/skills, ./AGENTS.md, …)
evor skill --print               # dump the rendered content per target

evor claude-skill is kept as an alias for the legacy Claude-Code-only behaviour.

After installing, ask the agent things like "what's next on my queue?" or "start the top todo task" and it'll use the CLI. The skill also tells the agent to flag collisions: if a teammate has an open session on the same task, it stops and asks before continuing.

You can wire evor into any other CLI agent by hand:

TASK=$(evor tasks list --status todo --json | jq -r '.[0].id')
evor tasks status $TASK in_progress
SID=$(evor sessions create --task $TASK --json | jq -r .id)

claude -p "Read 'evor tasks get $TASK', then implement it.
Use 'evor sessions message $SID \"<step>\"' to drive Evor.
When done, run 'evor sessions push $SID'."

Smart cwd detection

When you run evor tasks list (or tasks create) inside a git checkout, the CLI reads git config remote.origin.url, parses owner/repo, matches it to a linked Evor repo, and auto-scopes the call. Override with --all or --repo <id>. The "auto-scoped to …" hint goes to stderr so it doesn't break --json pipelines.

All commands

AGENT
  evor start              start the agent in the background (daemon)
  evor start --foreground run in foreground (Ctrl+C to stop)
  evor stop               stop the running daemon
  evor restart            stop, then start
  evor status             pid, uptime, backend, paths
  evor logs [-f] [-n N]   tail the daemon log

AUTH
  evor login              browser-based login (recommended)
  evor logout             revoke the token on the server and stop
  evor link <token>       save a pairing token by hand (CI / unattended)
  evor unlink             forget the saved token (local only)
  evor token              print the current token
  evor me                 your account profile

TASKS / SESSIONS / DIFFS                  (every list/get supports --json)
  evor tasks list [--status s] [--repo id] [--all]
  evor tasks get    <id>
  evor tasks create "Title" [--description …] [--repo id] [--assignee uid]
  evor tasks update <id> [--title …] [--description …] [--status …] [--assignee uid]
  evor tasks status <id> <todo|in_progress|blocked|review|done>
  evor tasks assign <id> <userid|@me|@none>
  evor tasks plan   <id>                  # generate an AI plan
  evor tasks delete <id>

  evor sessions list   [--task id]
  evor sessions get    <id>
  evor sessions create [--task id] [--title …]
  evor sessions message <id> "<content>"
  evor sessions push   <id>               # commit + open PR

  evor diffs get|approve|reject <id>

REPOS
  evor repos list
  evor repos get   <id|owner/name>
  evor repos clone <id>                   # ask the agent to clone locally
  evor repos use   <id>                   # set as your active scope
  evor repos local <id>                   # local checkout status

WORKSPACE
  evor projects list [--org id]
  evor projects get     <id>
  evor projects create  "Name" [--key KEY] [--description …] [--org id]
  evor projects members <id>
  evor projects tasks   <id> [--type mgmt|dev] [--phase …]
  evor projects releases <id>
  evor projects ideas    <id>

  evor orgs list
  evor orgs get      <id>
  evor orgs members  <id>
  evor orgs invites  <id>
  evor orgs online   <id>                 # who is currently clocked in

  evor chat rooms [--org id]
  evor chat messages <roomId> [--limit n]
  evor chat send     <roomId> "<body>"
  evor chat read     <roomId>             # clears unread + sends read receipt
  evor chat dm       <userId> [--org id]

  evor clock status
  evor clock in / evor clock out
  evor clock records [--year y] [--month m]

INTEGRATIONS
  evor skill [--target <names>] [--project] [--force] [--list] [--print]
                                          # install Evor skill/rules for
                                          # Claude Code, Cursor, Codex, Aider
  evor claude-skill [...]                 # alias (Claude-Code-only legacy)

ESCAPE HATCH
  evor api <method> <path> [json-body]    # raw REST passthrough

CONFIG
  evor config list
  evor config set backend <url>           # point at a different Evor server
  evor config unset <key>

State

Everything the CLI writes lives under ~/.config/evor/:

~/.config/evor/
├── token         pairing token (written by `evor login`)
├── config.json   { backend, name, workspaceRoot }
├── agent.pid     daemon process id
├── agent.json    { startedAt, backendUrl, agentName }
└── agent.log     daemon stdout + stderr

Cloned repositories land under ~/evor-workspaces/<owner>/<repo>.

How it works

The agent opens a persistent WebSocket to evor.live. When an AI session produces work, the backend routes it to your agent (matched by pairing token). The agent can:

  • Run a CLI AI providerclaude -p … or codex exec … on your host, under your subscription / keychain auth
  • Clone & fetch reposgit clone over HTTPS using your GitHub token
  • Apply diffs to the working tree — files land on disk as the AI proposes them, before you approve
  • Run git operationsgit add / commit / push / checkout-file against the task's branch, under your local ~/.gitconfig identity
  • Execute shell commands — only after you approve, and only from an allowlist

Every destructive action requires explicit approval on the web UI. Chat history is private to the session owner; teammates see summaries of pushed diffs, never transcripts.

Security

  • Each user has their own pairing token. Work from user A never runs on user B's agent.
  • Commands go through an allowlist (node, pnpm, npm, yarn, bun, go, python, git, ls, cat, grep, rg, make, bash, sh by default).
  • File writes are path-escape checked — nothing outside ~/evor-workspaces/ is touched.
  • Git commits use your local ~/.gitconfig identity, not an Evor service account.
  • evor logout rotates your token server-side — your other machines using the old one are kicked immediately.

Self-hosted or local dev

Pointing at a different Evor server? One command:

evor config set backend your-evor-host.example
evor login

For CI / image-build / unattended setups where a browser isn't available, use a token directly from Settings → Agent in the web UI:

evor link evor_pat_<your-token>
evor start

License

MIT