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

@dxa-deimos/cli

v0.2.16

Published

Deimos — terminal-native coding agent: multi-model routing, tools, MCP, slash commands, VS Code integration.

Downloads

434

Readme

github.com/dxiv/dxa-deimos/ · npm @dxa-deimos/cli · Source @ dxiv/dxa-deimos

Deimos takes its name from Mars’s outer moon—small, fast, and locked in orbit at the edge of the light. It is a terminal-native coding agent: one deimos command, multi-model routing across pluggable backends (Anthropic, OpenAI-compatible APIs, Gemini, GitHub Models, Ollama, Atomic Chat, and others), a full tool surface, MCP, slash commands, agent orchestration, and streaming sessions built for depth work. This repository ships the CLI, a VS Code extension, and a dark terminal theme forged for long runs in the shell.

Link hub: github.com/dxiv/dxa-deimos/ is the canonical entry—npm, GitHub, and related surfaces in one place.

License & marks: MIT. Third-party names and APIs appear only for interoperability and factual description. LEGAL.md sets out attribution, trademarks, and how to report concerns.

Package: @dxa-deimos/cli. Source & issues: github.com/dxiv/dxa-deimos.

Scope: CLI, documentation, VS Code extension, and CI are maintained as a single product line.

Tree: bin/, dist/cli.mjs, src/, vscode-extension/, docs/, optional python/, .github/ workflows, and root policy files—see Repository structure.


PR Checks Release Discussions Security Policy License npm GitHub Packages

Quick start · How Deimos fits in · Setup · Playbook · Providers · Source build · Repo layout · VS Code · Cheatsheet · Demo script · Contributing · Security · Privacy · Community

New to terminals or npm? docs/non-technical-setup.mdWindows or macOS / Linuxchecklistfirst run. All docs: docs/README.md.


Why use it

  • One surface for cloud APIs, local inference, and mixed routing—swap models without swapping tools
  • /provider for guided setup, saved profiles, and reproducible environment
  • Bash, file tools, grep/glob, agents, tasks, MCP, and web helpers—built for real repos, not demos
  • VS Code integration and terminal theme from this repo when you want the editor and shell aligned

How Deimos fits in

Deimos is model-agnostic middleware: one terminal workflow, tool surface, and MCP integration across supported providers—change the backend without changing how you work in the repo.

| If you… | Deimos emphasizes… | |--------|-------------------| | Want one CLI for cloud APIs and local models (Ollama, LM Studio, etc.) | Multi-model routing and /provider profiles instead of a separate tool per vendor | | Use MCP, skills, slash commands, or automation | MCP, skills, tasks, and gRPC headless mode in the same open codebase you can audit | | Care about defaults and transparency | Local credentials, documented telemetry controls, and an automated verify:privacy check on shipped bundles (Privacy) |

Other coding agents and IDEs can be excellent; this table is only to clarify where Deimos optimizes—portable, inspectable terminal depth work without locking daily use to a single vendor SDK.


Quick start

You need Node.js 22+ (see engines in package.json) and a terminal. If that’s new territory, use docs/non-technical-setup.md first.

Install

npm: @dxa-deimos/cli

GitHub Packages (GitHub org dxa-dev): dxa-dev / cli.

Use npm to install the published CLI. GitHub is for source code, issues, and discussions—not a separate “installer” download.

npm install -g @dxa-deimos/cli

Install ripgrep and ensure rg is on your PATH. If the CLI prints ripgrep not found, fix PATH, then open a new terminal window — Troubleshooting has more detail.

Provider and tuning flags in docs use DEIMOS_* names (for example DEIMOS_USE_OPENAI=1). See docs/advanced-setup.md.

Start

deimos

Inside Deimos:

  • run /provider for guided provider setup and saved profiles
  • run /onboard-github for GitHub Models onboarding

Fastest OpenAI setup

macOS / Linux:

export DEIMOS_USE_OPENAI=1
export OPENAI_API_KEY=sk-your-key-here
export OPENAI_MODEL=gpt-4o

deimos

Windows PowerShell:

$env:DEIMOS_USE_OPENAI="1"
$env:OPENAI_API_KEY="sk-your-key-here"
$env:OPENAI_MODEL="gpt-4o"

deimos

Fastest local Ollama setup

macOS / Linux:

export DEIMOS_USE_OPENAI=1
export OPENAI_BASE_URL=http://localhost:11434/v1
export OPENAI_MODEL=qwen2.5-coder:7b

deimos

Windows PowerShell:

$env:DEIMOS_USE_OPENAI="1"
$env:OPENAI_BASE_URL="http://localhost:11434/v1"
$env:OPENAI_MODEL="qwen2.5-coder:7b"

deimos

Setup guides

Local agent playbook (clone developers)

Daily local model workflows from a git clone (profiles, diagnostics, command reference): PLAYBOOK.md.

Index: docs/README.md · Checklist: docs/setup-checklist.md · After install: docs/first-run.md · Problems: docs/troubleshooting.md

Beginner-friendly:

Advanced / source build:

  • Advanced setup — Bun, profiles, doctor:*, env table
  • Local agent playbook — Ollama-focused workflow from a git clone (profiles, diagnostics, troubleshooting)
  • .env.example — template in git; copy to .env for a local clone, uncomment one provider block (see file header)
  • Android (Termux) — build inside proot Ubuntu

Optional: python/ — small Python helpers for experiments; not required for normal CLI install (python/README.md).


Supported providers

| Provider | Setup Path | Notes | | --- | --- | --- | | Anthropic (Deimos models) | /provider or env vars | Cloud default path; set ANTHROPIC_API_KEY in .env (layout in .env.example) | | OpenAI-compatible | /provider or env vars | OpenAI, OpenRouter, DeepSeek, Groq, Mistral, Together, Qwen (DashScope), Perplexity, LM Studio, Moonshot, and other /v1-compatible hosts | | Gemini | /provider or env vars | Supports API key, access token, or local ADC workflow on current main | | GitHub Models | /onboard-github | Interactive onboarding with saved credentials | | Codex | /provider | Uses existing Codex credentials when available | | Ollama | /provider or env vars | Local inference with no API key | | Atomic Chat | advanced setup | Local Apple Silicon backend | | Bedrock / Vertex / Foundry | env vars | Additional provider integrations for supported environments |


What works

  • Tool-driven coding workflows: Bash, file read/write/edit, grep, glob, agents, tasks, MCP, and slash commands
  • Streaming responses: Real-time token output and tool progress
  • Tool calling: Multi-step tool loops with model calls, tool execution, and follow-up responses
  • Images: URL and base64 image inputs for providers that support vision
  • Provider profiles: Guided setup plus saved .deimos-profile.json support
  • Local and remote model backends: Cloud APIs, local servers, and Apple Silicon local inference

Provider notes

Deimos supports multiple providers, but behaviour is not identical across all of them.

  • Anthropic-specific features may not exist on other providers
  • Tool quality depends heavily on the selected model
  • Smaller local models can struggle with long multi-step tool flows
  • Some providers impose lower output caps than the CLI defaults, and Deimos adapts where possible

For best results, use models with strong tool/function calling support.


Agent routing

Deimos can route different agents to different models through settings-based routing. This is useful for cost optimisation or splitting work by model strength.

Add to ~/.deimos/settings.json:

{
  "agentModels": {
    "deepseek-chat": {
      "base_url": "https://api.deepseek.com/v1",
      "api_key": "sk-your-key"
    },
    "gpt-4o": {
      "base_url": "https://api.openai.com/v1",
      "api_key": "sk-your-key"
    }
  },
  "agentRouting": {
    "Explore": "deepseek-chat",
    "Plan": "gpt-4o",
    "general-purpose": "gpt-4o",
    "frontend-dev": "deepseek-chat",
    "default": "gpt-4o"
  }
}

When no routing match is found, the global provider remains the fallback.

api_key values in settings.json are plaintext. Don’t commit that file.


Web search and fetch

By default, WebSearch works on non-Anthropic models using DuckDuckGo. This gives GPT-4o, DeepSeek, Gemini, Ollama, and other OpenAI-compatible providers a free web search path out of the box.

DuckDuckGo fallback scrapes search results; it can be rate-limited or blocked. For something sturdier, wire up Firecrawl below.

For Anthropic-native backends and Codex responses, Deimos keeps the native provider web search behaviour.

WebFetch works, but its basic HTTP plus HTML-to-markdown path can still fail on JavaScript-rendered sites or sites that block plain HTTP requests.

Set a Firecrawl API key if you want Firecrawl-powered search/fetch behaviour:

export FIRECRAWL_API_KEY=your-key-here

With Firecrawl enabled:

  • WebSearch can use Firecrawl's search API while DuckDuckGo remains the default free path when not using Anthropic’s first-party API
  • WebFetch uses Firecrawl's scrape endpoint instead of raw HTTP, handling JS-rendered pages correctly

Free tier at firecrawl.dev includes 500 credits. The key is optional.


Headless gRPC server

Deimos can be run as a headless gRPC service, so you can integrate its agentic capabilities (tools, bash, file editing) into other applications, CI/CD pipelines, or custom user interfaces. The server uses bidirectional streaming to send real-time text chunks, tool calls, and request permissions for sensitive commands.

Start the gRPC server

Start the core engine as a gRPC service on localhost:50051:

npm run dev:grpc

Configuration

| Variable | Default | Description | | --- | --- | --- | | GRPC_PORT | 50051 | Port the gRPC server listens on | | GRPC_HOST | localhost | Bind address. Use 0.0.0.0 to expose on all interfaces (not recommended without authentication) |

Run the test CLI client

We provide a lightweight CLI client that communicates exclusively over gRPC. It acts just like the main interactive CLI, rendering colors, streaming tokens, and prompting you for tool permissions (y/n) via the gRPC action_required event.

In a separate terminal, run:

npm run dev:grpc:cli

Note: the gRPC definitions live in src/proto/deimos.proto.


Source build and local development

bun install
bun run build
node dist/cli.mjs

From a clone: create .env from .env.example, uncomment one provider block, put real values in .env (the example file header explains the fields).

Bun is what the repo scripts expect. Common commands:

  • bun run typecheck
  • bun run dev
  • bun test
  • bun run test:coverage
  • bun run security:pr-scan -- --base origin/main
  • bun run smoke
  • bun run doctor:runtime
  • bun run verify:privacy
  • focused bun test ... for the areas you touch

Tags: pushing a v* tag runs release artefacts (uploads dist/cli.mjs as a CI artefact). Maintainer checklist: docs/maintainers.md.


Testing and coverage

Tests use Bun’s built-in runner.

bun test

Coverage (writes coverage/lcov.info and a heatmap at coverage/index.html):

bun run test:coverage

Open the HTML report: macOS / Linux open coverage/index.html — Windows PowerShell: start coverage/index.html.

Rebuild only the coverage UI from an existing lcov.info:

bun run test:coverage:ui

Targeted runs:

  • bun run test:provider
  • bun run test:provider-recommendation
  • bun test path/to/file.test.ts

Before opening a PR, a sensible smoke pass is bun run build, bun run smoke, then either focused bun test … on what you touched or bun run test:coverage if you changed shared runtime or provider code.


Repository structure

The CLI is built from src/ into dist/cli.mjs; bin/deimos.mjs is the published entrypoint npm calls. Everything else is documentation, build/CI tooling, the VS Code add-on, optional python/ helpers, or policy files at the repo root — each path is described under Paths below.

Layout

flowchart TB
  subgraph DOC[Documentation]
    direction LR
    D1[docs/]
    D2[README.md]
    D3[ANDROID_INSTALL.md]
  end
  subgraph AGENT[Terminal agent]
    direction LR
    A1[src/]
    A2[bin/]
    A3[package.json]
    A4[tsconfig.json]
  end
  subgraph OUT[Build output]
    O1[dist/cli.mjs]
  end
  subgraph META[Tooling and meta]
    direction LR
    M1[scripts/]
    M2[vscode-extension/]
    M3[python/]
    M4[.github/]
    M5[.env]
  end
  AGENT --> OUT

.env is what you edit on your machine (gitignored). .env.example is only the checked-in template — copy it to .env once, then change .env, not the example file.

Clone vs npm install

A full git clone matches the chart. npm install -g @dxa-deimos/cli (npm package) only unpacks what package.json lists under "files" — right now bin/, dist/cli.mjs, and README.md.

flowchart LR
  subgraph CLONE[Git clone]
    C1[entire repo]
  end
  subgraph NPM[npm package]
    direction TB
    N1[bin/]
    N2[dist/cli.mjs]
    N3[README.md]
  end

Paths

Documentation

Terminal agent

  • src/ — Core CLI and runtime (providers, tools, MCP, UI)
  • bin/deimos.mjs launcher (npm exposes the deimos command; runs dist/cli.mjs when built)
  • package.json — Metadata, scripts, and the published files list
  • tsconfig.json — TypeScript project for src/

Build and checks

  • scripts/ — Build pipeline, doctor:*, security scans, coverage helpers

Editor add-on

  • vscode-extension/deimos-vscode/ — VS Code integration and terminal theme (extension readme)

Optional

Repository / CI

  • .github/PR checks, v* release artefacts, Dependabot, issue/PR templates
  • .env — Your provider keys when working from a clone (gitignored). Duplicate .env.example to .env, then edit .env only (cp .env.example .env on Unix; Copy-Item .env.example .env in PowerShell).
  • .env.example — Reference template in the repo; do not put secrets here.
  • RootCONTRIBUTING.md, CHANGELOG.md, LEGAL.md, LICENSE, SECURITY.md

VS Code extension

vscode-extension/deimos-vscode/: launch the CLI from the editor, Control Centre in the activity bar, bundled terminal theme. Extension readme.


Security

If you believe you found a security issue, see SECURITY.md.


Privacy & local-first

Provider credentials stay on your device in local config (for example .env and saved profiles); this project does not operate a central service that stores your keys by default.

bun run verify:privacy scans dist/cli.mjs for banned string patterns associated with third-party telemetry and similar endpoints. A passing run is not a guarantee that no data or secrets could ever leave your machine—it only enforces that guardrail on the built bundle.

Pattern list and logic: scripts/verify-no-phone-home.ts.

Telemetry-related environment variables include DISABLE_TELEMETRY and DEIMOS_DISABLE_NONESSENTIAL_TRAFFIC (stricter traffic limits). OpenTelemetry export is off unless DEIMOS_ENABLE_TELEMETRY is set to a truthy value.


Community

  • Discussions — questions, ideas, general chat
  • Issues — bugs and concrete feature requests

Contributing

CONTRIBUTING.md covers clone, bun install, build, and what CI expects. For large or unclear scope, open an issue before sending a very large pull request.


Legal / trademarks

MIT applies to material in this repository; dependencies have their own licenses. Third-party names appear only where descriptive (see LEGAL.md). Full license text: LICENSE.


Links

| Resource | URL | | --- | --- | | Product page (link hub) | github.com/dxiv/dxa-deimos/ | | This package (npm) | @dxa-deimos/cli | | This package (GitHub Packages) | dxa-dev / cli | | This repository | github.com/dxiv/dxa-deimos | | Discussions | GitHub Discussions | | Issues | GitHub Issues | | Security | SECURITY.md | | Legal / trademarks | LEGAL.md | | Contributing | CONTRIBUTING.md | | Docs index | docs/README.md | | License (MIT) | LICENSE |