Skip to main content
Glama
SusuTawar

ragi

by SusuTawar
README.md
# ragi

Local-first RAG indexing and semantic search MCP server.

Requires Node 22 or newer.

Published/runtime usage is Node-first. `bunx` is not supported (bunx does not properly install transitive dependencies of published packages).

## Quick Start

```bash
# Install dependencies
npm install

# Build and start MCP server
npm run build
npm start

# Or use npx without a global install
npx -y @susutawar/ragi@latest

# Or install globally, then run the bin directly
npm install -g @susutawar/ragi
ragi
```

## Usage

```bash
# Initialize skill locally
npx -y @susutawar/ragi@latest init

# Initialize skill globally
npx -y @susutawar/ragi@latest init --global

# Check installations
npx -y @susutawar/ragi@latest init --check

# Refresh MCP definitions to the current @latest package spec
npm run mcp:update
```

`npx -y @susutawar/ragi@latest init` now:
- asks which agent(s) are used in the current project,
- supports a broader curated harness matrix with `full`, `manual MCP`, and `skills only` support tiers,
- checks whether the installed `ragi` skill is missing, current, or outdated before copying,
- checks whether `ragi` is already registered with the selected agent host(s) before offering MCP setup,
- checks `~/.config/ragi/config.json` and can scaffold it when missing or invalid,
- prefers global/user MCP registration by default when the agent's config format is supported,
- falls back to printing manual MCP registration instructions for unsupported agents.

`--force` overwrites outdated installed skills during `init`. Without `--force`, interactive runs ask before updating and non-interactive runs leave stale installs untouched.

After `init` edits a writable MCP config, restart that host so it reloads the updated definition. For manual hosts, `init` now prints the exact next command or UI step to finish setup.

## Configuration

The default runtime config lives at `~/.config/ragi/config.json`.

Use a project `.ragrc` only when this repo needs to override the global `ragi` defaults:

```json
{
  "embedding": {
    "provider": "transformers_js",
    "model": "Xenova/all-MiniLM-L6-v2"
  },
  "providers": {
    "ollama": {
      "baseUrl": "http://localhost:11434"
    },
    "llama_cpp": {
      "baseUrl": "http://localhost:8080"
    }
  }
}
```

Recommended model choices by provider:
- `ollama`: `nomic-embed-text`
- `transformers_js`: `Xenova/all-MiniLM-L6-v2`
- `llama_cpp`: an embedding-capable model served by your llama.cpp instance

The `providers.*.baseUrl` values control where `ragi` looks for each local service. When `embedding.provider` is `ollama` or `llama_cpp` and `embedding.baseUrl` is unset, `ragi` uses the matching provider-specific `baseUrl` from the global config.

Or use environment variables (RAGI_* takes precedence):
- `RAGI_VECTOR_STORE`
- `RAGI_EMBEDDING_PROVIDER`
- `RAGI_EMBEDDING_MODEL`
- `RAGI_EMBEDDING_BASE_URL`

## Troubleshooting

If Node reports a `sharp.node` error while using the default `transformers_js` embedding provider:
- avoid mixing `bun install` and `npm install` in the same `node_modules`
- reinstall dependencies with the same package manager you plan to run with
- if you use `npx -y @susutawar/ragi@latest`, let npm resolve a fresh package install instead of reusing a mixed local install

`bunx @susutawar/ragi` is not supported because `bunx` does not install transitive dependencies of published packages. Use `npx` instead.

When running `npx @susutawar/ragi` from inside this repo (development), run `npm install` first — the `postinstall` script creates a local bin shim so `npx` resolves correctly on Windows.

TDQS

A3.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: indexing files, listing projects, and semantic search. There is no overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with the 'rag_' prefix (rag_index, rag_list_projects, rag_search), making them predictable and easy to understand.

Tool Count4/5

Three tools is a reasonable count for a basic RAG server, covering indexing, project management, and search. It is slightly thin but not insufficient for the apparent scope.

Completeness3/5

The tool set covers core operations (index, search, list projects) but lacks important lifecycle operations like deleting or updating an index, which agents may need.

Maintenance

ActivityInactive
ResponsivenessNo issues