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

arkna-scan

v1.2.0

Published

Find every AI agent in your codebase. Zero config, zero dependencies. Just run npx arkna-scan.

Readme

arkna-scan

Find every AI agent hiding in your codebase. One command, zero config.

npx arkna-scan

That's it. It walks your project, detects AI agents, LLM integrations, and active API connections — then tells you exactly what's running, what frameworks they use, and which providers they talk to.

What it detects

Platforms: OpenClaw, Claude Code, Cursor, Copilot, Aider, Continue, Cline, Windsurf

Frameworks: LangChain, CrewAI, AutoGen/AG2, Vercel AI SDK, DSPy, Haystack, Pydantic AI, LlamaIndex, Instructor, MetaGPT, Semantic Kernel, n8n

Providers: OpenAI, Anthropic, Google, Cohere, Groq, Mistral, Together, Replicate, AWS Bedrock, Azure OpenAI, OpenRouter, Ollama

Languages: Python, TypeScript/JavaScript, Ruby, Go

How it works

The scanner runs up to four detection layers:

  1. Platform detection — Looks for known agent workspace configs (.openclaw/, .cursor/, CLAUDE.md, etc.). Always runs.
  2. Scheduled tasks — Checks cron jobs and Windows Task Scheduler for AI-related commands. Requires --deep.
  3. Network detection — Finds active TCP connections to LLM API endpoints. Requires --deep.
  4. Static analysis — Scans package.json, requirements.txt, .env files, and source code for AI SDK imports, agent construction patterns, and framework configs. Always runs.

By default (without --deep), only layers 1 and 4 run — fast and sufficient for most project scans. Use --deep to add network and scheduled task detection when you want a full machine-wide picture.

Results are confidence-weighted. A bare openai import gets flagged differently than a full AgentExecutor construction with tools. The scanner distinguishes between "uses an LLM somewhere" and "this is a deployed agent."

Example output

Default scan (no --deep):

▸ Scanning /home/dev/myproject

  ├─ Platform detection...
  │  3 platform agent(s)
  └─ Code analysis (847 files)...

✔ Scan complete in 230ms
  Files analyzed: 847 (312 cached)

▸ Confirmed Agents (platform detection)
────────────────────────────────────────
  ✓ my-crew
    Platform: crewai
    Location: /home/dev/myproject/crew.yaml

▸ Developer Tools (IDE assistants, API keys — not deployed agents)
────────────────────────────────────────
    cursor (myproject)  cursor  /home/dev/myproject/.cursorrules
    copilot (myproject) copilot /home/dev/myproject/.github/copilot-instructions.md

▸ Code References (static analysis)
────────────────────────────────────────
  1 project(s) · 2 agent(s) · 14 signal(s)

  myproject /home/dev/myproject
    Language: python | Signals: 14
    ● research-agent [high]
      Providers:  openai, anthropic
      Frameworks: langchain
    ● data-pipeline [medium]
      Providers:  openai
      Frameworks: vercel-ai

With --deep, the output additionally includes Scheduled Agents and Active Connections sections.

Privacy

The scanner reads local files to detect patterns. Here's exactly what it does and doesn't do:

Reads: package.json, requirements.txt, pyproject.toml, .env files (variable names only — not values), Python/JS/TS source files, framework config files like crew.yaml

Does NOT read: File contents beyond what's needed for pattern matching. Source code is scanned line-by-line for import patterns and agent construction — the scanner doesn't parse, execute, or store your code.

Sends nothing unless you explicitly pass --register. Without that flag, everything stays local.

Register with ARKNA

Optionally connect discovered agents to ARKNA for observability, replay, and incident tracking:

npx arkna-scan --register --api-key ark_live_...

Registration is opt-in. The scanner works perfectly fine as a standalone discovery tool.

CLI flags

arkna-scan [directory]        Scan a directory (default: current directory)

  --json                      Output raw JSON (for piping / CI)
  --quiet, -q                 Suppress progress, print results only
  --deep                      Include network + scheduled task detection (slower)
  --no-cache                  Ignore cached results
  --register                  Register discovered agents with ARKNA
  --api-key <key>             ARKNA API key (or set ARKNA_API_KEY env var)
  --api-url <url>             Override ARKNA API base URL
  --version, -V               Show version
  -h, --help                  Show this help

Scan limits

By default, the scanner processes up to 50,000 files or 500 MB of content (whichever comes first). This keeps scans fast and predictable even on large monorepos.

Requirements

  • Node.js 18+
  • No runtime dependencies

Contributing

Issues and PRs welcome at github.com/arkna-ai/arkna-scanner.

License

MIT