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

@memohai/runtime

v0.21.0

Published

Embeddable Memoh Remote Runtime SDK and CLI

Readme

Memoh Remote Runtime CLI

The CLI saves a connection configuration and lets the current user's OS service manager run it in the background. Install Node and the CLI with your package manager in a persistent location:

npm install -g @memohai/runtime
memoh-runtime enroll --server https://memoh.example --key "$MEMOH_RUNTIME_KEY"
memoh-runtime service install
memoh-runtime service start

enroll saves the server URL, key, and optional --team-id in ~/.memoh/runtime.json. The file is written atomically with private permissions. Changing an existing connection or repairing a malformed file requires --replace. Restart a running service to apply the new configuration.

并发执行 enroll 时,CLI 使用 ~/.memoh/runtime.json.lock/ 串行完成 读取、比较与写入,最多等待 30 秒。正常结束或报错都会释放锁;若进程被强制 终止而留下锁目录,请检查其中 owner.json 的 PID,确认原进程已经退出后 再删除锁目录并重试。不要删除仍有进程持有的锁。

macOS 上已有配置和目录的直接、继承 ACL 都会检查;向其他账户开放凭证读取 或目录写入权限时会拒绝操作,CLI 不会自动修改这些已有权限。

run reads the saved configuration and runs in the foreground. Connection flags or environment variables make a temporary connection without saving it. --config <file> reads that file instead and ignores connection environment variables. The original invocation without the run subcommand still works.

memoh-runtime run
memoh-runtime service status
memoh-runtime service restart
memoh-runtime service stop
memoh-runtime service uninstall

service install registers a stopped service pointing at the existing CLI and the Node entry found in PATH, preserving Node symlinks. It does not save credentials. Reinstalling stops the old process; use service start afterward. Keep that CLI installation available; an npx cache is not a persistent install. Package managers own program installation and upgrades. If an upgrade moves Node or the CLI, rerun service install and service start.

On macOS, installation creates a small Memoh Runtime launcher in ~/.memoh/runtime/service/ so Login Items identifies the background service by name. It forwards to the installed Node and CLI without copying either program. Reinstalling updates the launcher; uninstalling removes it while retaining the saved enrollment. After upgrading from a version that showed Node.js Foundation, run service install and service start again to register the named launcher.

The OS owns process supervision and automatic startup:

| OS | Service manager | Automatic startup | Logs | | --- | --- | --- | --- | | macOS | launchd user agent | User login | ~/.memoh/runtime/logs/ | | Linux | systemd user service | User manager startup | journalctl --user -u memoh-runtime | | Windows | Task Scheduler, task scoped to the user's SID | User login; requires an interactive session | ~/.memoh/runtime/logs/runtime.log |

On Linux, loginctl enable-linger lets the user manager run after logout and at boot. stop leaves automatic startup registered. uninstall removes the native service definition and retains the saved configuration and logs.

status (or status --json) reports the native service state, not connectivity to the server. start and restart check the saved configuration first; stop and uninstall also work when that configuration is missing or malformed.