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

anveesa

v0.7.11

Published

Multi-provider terminal AI assistant — TUI, web UI, and one-shot mode backed by any OpenAI-compatible API

Downloads

10,577

Readme

anveesa

A fast, multi-provider terminal AI coding assistant — interactive TUI, one-shot prompts, or web UI — backed by any OpenAI-compatible API.

CI Crates.io License: MIT


What it is

Anveesa is a multi-provider terminal AI assistant that works with any OpenAI-compatible API — including OpenAI, Anthropic (via proxy), DeepSeek, Groq, Gemini, OpenRouter, local Ollama, and more. It ships a full TUI with streaming output, diff previews, cost tracking, and plan display, plus a lightweight web UI for browser-based access. You get 28 built-in tools covering file ops, git, web search, screenshot capture, and command execution — all with an approval flow that shows a full diff before any write.


Install

Cargo (recommended):

cargo install anveesa

Pre-built binaries:

Download from GitHub Releases for your platform (macOS, Linux x86_64/arm64).

npm wrapper:

npm install -g anveesa

Build from source:

git clone https://github.com/PandhuWibowo/anveesa-cli
cd anveesa-cli
cargo build --release
./target/release/anveesa

Requires Rust 1.85+ (2024 edition).


Quick start

# 1. Initialize config at ~/.config/anveesa/config.toml
anveesa config init

# 2. Edit config to set your provider and API key
#    (see sample below)

# 3. Set your API key in the environment
export OPENAI_API_KEY="sk-..."

# 4. Launch the TUI
anveesa

# 5. One-shot prompt
anveesa "explain the auth middleware in this repo"

# 6. Specific provider/model
anveesa --provider deepseek --model deepseek-chat "refactor src/auth.rs"

Sample config snippet (~/.config/anveesa/config.toml):

default_provider = "openai"

[providers.openai]
kind = "openai-compatible"
base_url = "https://api.openai.com/v1"
api_key_env = "OPENAI_API_KEY"
default_model = "gpt-4o"
fast_model = "gpt-4o-mini"

[providers.deepseek]
kind = "openai-compatible"
base_url = "https://api.deepseek.com"
api_key_env = "DEEPSEEK_API_KEY"
default_model = "deepseek-chat"

[providers.ollama]
kind = "openai-compatible"
base_url = "http://localhost:11434/v1"
default_model = "qwen2.5-coder:7b"

Providers

| Provider | kind | Notes | |---|---|---| | OpenAI | openai-compatible | GPT-4o, o1, o3 | | Anthropic (via proxy) | openai-compatible | Claude 3.5/3.7 via OpenRouter or direct | | DeepSeek | openai-compatible | deepseek-chat, deepseek-reasoner | | Groq | openai-compatible | Ultra-fast inference | | Google Gemini | openai-compatible | gemini-1.5-pro/flash | | OpenRouter | openai-compatible | 200+ models via one API | | Mistral | openai-compatible | mistral-large, codestral | | xAI (Grok) | openai-compatible | grok-2 | | Together AI | openai-compatible | Open-source models | | Fireworks AI | openai-compatible | Fast open-source | | Cerebras | openai-compatible | High-throughput | | SambaNova | openai-compatible | Enterprise inference | | NVIDIA NIM | openai-compatible | GPU-backed cloud | | GitHub Models | openai-compatible | Free tier models | | Perplexity | openai-compatible | Web-grounded answers | | Ollama | openai-compatible | Local models | | LM Studio | openai-compatible | Local GUI + API | | vLLM | openai-compatible | Self-hosted inference | | LiteLLM | openai-compatible | Universal proxy | | LocalAI | openai-compatible | Self-hosted | | Claude Code | command | Runs claude CLI | | Codex CLI | command | Runs codex CLI | | GitHub Copilot | command | Runs copilot CLI |


TUI commands

| Command | Description | |---|---| | /add <file> | Inject a file into context (Aider-style) | | /diff | Show git diff HEAD | | /commit [msg] | Stage all + commit; omit msg to have AI generate one | | /memory <note> | Append a note to .anveesa.md | | /clear | Reset conversation and session | | /undo | Restore last file changed by AI | | /compact | Drop old turns to free context window | | /copy | Copy last response to clipboard | | /export [path] | Save conversation as Markdown | | /model [name] | Show or switch model | | /provider [name] | Show or switch provider | | /status | Token usage and cost summary | | /search | Search conversation (or Ctrl+R) | | /help | Show all shortcuts | | /exit | Quit |

TUI keyboard shortcuts:

| Key | Action | |---|---| | Enter | Submit prompt | | Shift+Enter | Newline in input | | Tab | Complete /command, provider name, or file path | | Ctrl+R | Search conversation | | [ / ] | Navigate between file diffs and thinking blocks | | Enter (on diff) | Expand / collapse | | Ctrl+V / Cmd+V | Paste image or text | | j / k | Scroll (when input is empty) | | PageUp / PageDn | Scroll | | Ctrl+W | Delete word | | Ctrl+U | Clear line | | Ctrl+M | Toggle mouse capture (scroll vs. select mode) | | Ctrl+C | Cancel / quit |


Web UI

anveesa web           # starts on http://localhost:8374
anveesa web --port 8080

The web UI provides a browser-based chat interface with the same provider/model selection as the TUI. Features:

  • Streaming responses with Markdown rendering
  • Multi-provider switching
  • Session history
  • Cost and token tracking
  • Mobile-friendly layout

Key features

  • Multi-provider — 28 built-in providers; add any OpenAI-compatible endpoint in one config line
  • Cost tracking — per-turn and session cost displayed in the header; custom pricing override per provider
  • Session persistence — conversations auto-saved per working directory; resume where you left off
  • Extended thinking — enable Anthropic extended thinking with extended_thinking = 10000 budget tokens
  • Image attachments — paste screenshots with Cmd+V / Ctrl+V; queue multiple images per turn
  • MCP support — connect Model Context Protocol servers for additional tools
  • Aider-style /add — inject files into context without leaving the TUI
  • Auto-compact — smart context compaction kicks in when the window fills up; AI summarises dropped turns
  • Auto-commit helper/commit stages all changes and pre-fills the input with an AI-generated commit message
  • Model routingfast_model for cheap read-only tool rounds; main model for final synthesis
  • 28 built-in tools — file ops, git, web search, deep-fetch, screenshot, notes, run commands
  • Approval flow — every write/run tool shows a diff preview before executing

Config reference

All fields of OpenAiCompatibleProviderConfig:

| Field | Type | Default | Description | |---|---|---|---| | base_url | string | required | API base URL (e.g. https://api.openai.com/v1) | | api_key | string | — | Inline API key (prefer api_key_env) | | api_key_env | string | — | Environment variable holding the API key | | default_model | string | — | Model to use when none is specified | | fast_model | string | — | Lightweight model for read-only tool rounds | | headers | table | {} | Extra HTTP headers (e.g. for GitHub Models) | | prompt_cache | bool | — | Enable prompt caching (Anthropic cache_control markers) | | max_tokens | int | — | Upper bound on tokens generated per response | | extended_thinking | int | — | Enable Anthropic extended thinking; value = budget_tokens | | pricing | [f64; 4] | — | Custom pricing [input, output, cache_read, cache_write] per million tokens |

Example with custom pricing:

[providers.my-provider]
kind = "openai-compatible"
base_url = "https://my-llm-api.com/v1"
api_key_env = "MY_API_KEY"
default_model = "my-model-v1"
pricing = [3.0, 15.0, 0.3, 3.75]

License

MIT — see LICENSE.