OPEN SOURCE COLLECTOR

Mantis BY COHEN

The collector, as its own product

Mantis is a single binary you run inside a project. Give it a path and a manifest and it resolves every package you actually pull in, checks each one against the Cohen database, then hands whatever is unknown to the sandbox.

It reads, and only reads. It never installs, never triggers a lifecycle script, and never runs anything it finds. It is open source, and it ships without a scanner subscription.

1

One binary

Static, with no Node runtime and nothing to install into the project it inspects.

Σ

The whole tree

Direct, transitive, and every version actually on disk. Read from the lockfile, not the manifest.

Names only

It sends name, version and the integrity hash already in your lockfile. No source, no paths, no environment.

Exit codes

A line per package, or the whole tree as JSON. Returns non zero when something needs a human.

MITRUSTDARWINLINUX WINDOWSJSON OUTPUTNO TELEMETRY
PRE RELEASE · NOT YET DOWNLOADABLE Read the source Tell me when it ships

HOW IT WORKS

What is actually installed in here?

A manifest lists what you asked for. It does not list what arrived. Mantis walks the whole tree, including everything your dependencies brought with them, and gives each package a name, a version and a verdict.

01

Point

You give it a project path. It locates the manifest and the lockfile itself.

02

Resolve

The declared list is expanded into the real one, down to every transitive version on disk.

03

Query

Each name and version goes to the Cohen database, alongside OSV and the npm security holdings.

04

Queue

Anything with no verdict yet is submitted for a sandbox run, in dependency order.

05

Report

One line per package to the terminal, or the whole tree as JSON for a build gate.

IN PRACTICE

Two questions, then it works unattended

Mantis asks where the project is and which manifest to trust. Everything after that happens without you.

SESSIONMANTIS 0.1.0
mantis
  MANTIS 0.1.0 · dependency collector

  ? Project path     ~/work/checkout-service
  ? Manifest         package.json

  reading lockfile      package-lock.json (v3)
  resolving tree        1,284 packages · 61 direct · 1,223 transitive
  querying database     1,284 lookups · 0.9s

    clean               1,271
    review              2
    unknown             11

  queued for sandbox    11 packages
  waiting               .......... done (3m 41s)

  REVIEW  polymarket-stake-mathss@3.5.2
          5 credential reads, 2 outbound connections, 10.5s
  REVIEW  fast-json-parse-native@0.4.1
          postinstall spawned curl, wrote outside its own tree

  wrote                 mantis-report.json
  exit 1 · 2 packages need a human
needs review clean or informational
mantis --json

Skip the terminal report and write the whole tree to stdout, one object per package.

mantis --fail-on review

Return a non zero exit code when any package comes back for review. Enough to gate most builds.

mantis --no-wait

Submit the unknown packages and exit immediately. Collect the finished report later.

mantis --public-only

Never send a private or scoped name to the lookup service. Those packages are reported as skipped.

mantis --depth direct

Only the packages you declared yourself. Faster, and much less honest.

MANTIS PRICING

Mantis

The binary is free. The lookups are metered.

Mantis itself costs nothing and always will. What it queries is the Cohen database, and that is the part any plan meters.

WHAT THE BINARY COSTS

Nothing, on every platform. MIT licensed, no account needed to read or build it, and no telemetry to turn off.

WHAT NEEDS A KEY

Verdict lookups. A free key covers 100 a day, which is enough for one project. Lookups are unlimited on every paid plan.

WHAT IS METERED

Sandbox runs, and only for packages nobody has analysed yet. A project built entirely of known packages costs nothing to check.

QUESTIONS

Before you run it

Does it want the manifest, or the lockfile?

Both, when both exist. The manifest says what you asked for. The lockfile says what you got, which is the list that actually matters. With no lockfile present, Mantis resolves the tree itself and tells you it did.

Will it install or execute anything?

No. Mantis only reads. It never runs an install, never triggers a lifecycle script, and never touches node_modules except to see what is sitting there. Execution happens in the sandbox, on our hardware, never on yours.

What actually leaves my machine?

One string per package, of the form name@version, plus the integrity hash already published in your lockfile. No source, no file paths, no environment variables, no manifest, no repository name. The client is open, so you can confirm that rather than take it on trust.

What happens to a package with no verdict?

It goes into the sandbox queue. Mantis can wait for the result, or exit straight away with --no-wait and let you collect the finished report later.

Can it gate a build?

Yes. mantis --fail-on review returns a non zero exit code, which is all most pipelines need. Pair it with --json to keep the artefact.

Does it handle pnpm and yarn?

npm and pnpm lockfiles at first release, with yarn next. Anything it cannot parse is reported as unresolved rather than quietly dropped.

Want it the day the first binary is signed?

contact@snappyfeet.org