New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

coordigent

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

coordigent

Coordigent's coord and coord-mcp commands: downloads the binaries for this machine on first run, checks their SHA-256, and runs them. `npx coordigent` and `npx coordigent mcp` work too. mcprush.com-8242fc9f4ab552f2820f7907

latest
Source
npmnpm
Version
0.1.4
Version published
Maintainers
1
Created
Source

Coordigent npm launcher

Coordigent's coord CLI and coord-mcp MCP server, from npm:

npm i -g coordigent
coord connect

npm i -g coordigent puts three commands on PATH: coord runs coord, coord-mcp runs coord-mcp, and coordigent runs coord (or coord-mcp with mcp first, below). So every coord … command in the docs works as written. Without installing: npx coordigent connect.

As an MCP server (stdio), for any MCP client, and the npm entry of the MCP Registry listing:

{ "mcpServers": { "coordigent": { "command": "npx", "args": ["-y", "coordigent", "mcp"] } } }

coord-mcp [args], and coordigent mcp [args], run coord-mcp [args] after the same first-run download and checks. Everything the launcher prints goes to stderr, so stdout stays the MCP channel. coord-mcp reads the login from ~/.tower/config.json (npx coordigent login) and the repo from the folder it starts in, or COORDIGENT_REPO.

The package holds one Node file and no binaries. On first run it downloads coord and coord-mcp for this machine from the server's /install/<artifact>, checks each against the SHA-256 published in /install/version, and puts them where the installers do. After that, and on every later run, it runs coord (or coord-mcp) with the same arguments and exits with its exit code. Because the binaries live where install.sh puts them, coord update and every MCP config keep working unchanged.

  • Platforms: macOS arm64 and x64 (an x64 Node under Rosetta gets the arm64 build), glibc Linux x64 and arm64, Windows x64. Anything else, and Alpine/musl, exits 1 before downloading.
  • Where: ~/.tower/bin, or %USERPROFILE%\.coordigent\bin on Windows (as install.ps1). TOWER_BIN_DIR overrides both. The launcher never edits PATH: npm's global bin folder, already on it, holds the coord, coord-mcp and coordigent commands, which run the binaries there.
  • Which bin runs what: each bin is its own file: bin/coord.js always runs coord, bin/coord-mcp.js always runs coord-mcp, and bin/coordigent.js (the launcher itself) reads mcp from its first argument. Not one file checking the name it was run as: on Windows npm's .cmd shim runs node <bin file>, so the file is all that says which command was typed.
  • Next to install.sh: a coord from the installer (~/.tower/bin) and one from npm can both be on PATH. Whichever comes first starts, and both run the same ~/.tower/bin/coord, so it does not matter which. An npm global prefix of ~/.tower would link npm's coord into the folder the binaries go in; the launcher refuses that with a message rather than run itself.
  • Updating and removing: coord update updates the binaries, as for any install; npm update -g coordigent updates only this launcher. To remove everything, coord uninstall first (binaries, hooks, ~/.tower), then npm rm -g coordigent. Removing only the package leaves the binaries in place, and running npm's coord after coord uninstall downloads them again.
  • Which server: COORDIGENT_SERVER_URL, then TOWER_SERVER_URL, then the serverUrl saved in ~/.tower/config.json, then https://coordigent.com: the order coord itself uses. A machine with no config yet gets one naming that server, with no token, as install.sh writes.
  • Checks: both binaries are downloaded and checked before either is written, so a refusal leaves nothing installed. A digest mismatch, a 429 from the per-address download limit ("Try again in N minute(s)") and an unreachable server each exit 1 with one message. A server that publishes no checksum installs with an "installing unverified" warning, as install.sh does. What the checksums do and do not protect against is in docs/operations.md.
  • No install scripts. Nothing runs at npm install; --ignore-scripts changes nothing.

Maintaining it

Tests: bun test packaging/npm from the repo root (a local fake server stands in for /install). CI runs npm pack --dry-run on it (.github/workflows/ci.yml, job npm-package) and fails if the tarball holds anything but bin/coordigent.js, bin/coord.js, bin/coord-mcp.js, LICENSE (MIT), README.md and package.json, if bin does not map coord, coord-mcp and coordigent to those three files, if any of them is not executable, or if it gains an install-time script. The tests also pack the package and npm i -g the tarball into a scratch prefix, then run each linked command. Both that check and the release checks are scripts/release-checks.js, which is not shipped.

Publishing

.github/workflows/publish-npm.yml publishes on a tag npm-v<version> (the v* tags publish the container image and never touch npm), or by hand from Actions with an existing tag. It uses npm trusted publishing: no NPM_TOKEN; npm trades the job's GitHub OIDC token for a one-time credential, and npm publish --access public publishes it (no provenance: npm only attests public source repos, and this repo is private). Before publishing, scripts/release-checks.js release <tag> refuses, with the reason, when:

  • the tag is not exactly npm-v plus package.json's version;
  • the name is not coordigent;
  • mcpName is not com.coordigent/coordigent, which the MCP Registry reads from the published version to accept the listing's npm entry;
  • package.json still has "private": true. It stays until the steps below are done, so until then every run of the workflow fails at that check and publishes nothing.

Turning it on (Ali, once)

  • On npmjs.com, sign in as the account that will own coordigent, with two-factor authentication on. (npm view coordigent returned 404 on 2026-10-17: the name was free.)
  • npmjs.com sets a trusted publisher on the package's own settings page, so the package must exist first. If coordigent is not yet on npm, publish the current version once by hand: in a clean checkout of main, cd packaging/npm, delete the "private": true line locally (do not commit it), run npm publish --access public and approve with 2FA, then git checkout package.json. That one version has no provenance; every later one does.
  • Open npmjs.com → coordigent → Settings → Trusted Publisher, choose GitHub Actions, and enter: organization or user startupproj, repository coordigent, workflow filename publish-npm.yml, environment empty. Save.
  • On the same page, under Publishing access, choose Require two-factor authentication and disallow tokens. Trusted publishing still works; a leaked token cannot publish.
  • Open a PR that removes "private": true from packaging/npm/package.json, and bumps version if step 2 published the current one. Merge it.
  • Tag the merge commit and push the tag: git tag npm-v<version> <commit> && git push origin npm-v<version>. The workflow publishes; the version page on npmjs.com then shows its provenance, linked to that run.

Each later release: bump version in a PR, merge, push npm-v<version>. Bump version and packages[0].version in the root server.json in the same PR (a test holds them equal), and after npm has published, publish the listing (docs/operations.md, "MCP Registry").

Keywords

mcp

FAQs

Package last updated on 21 Oct 2026

Related posts