Skip to main content

RAYS-CORE: AI-powered codebase analysis and editing assistant

Project description

RAYS-CORE

RAYS-CORE is an AI coding assistant for local repositories. It indexes your codebase, retrieves relevant symbols and files, plans changes, applies edits with permission controls, and maintains persistent project memory.

Why RAYS-CORE

  • Works on real codebases with structural indexing and symbol-level retrieval.
  • Supports read-only chat, targeted editing, and new-project generation in one CLI.
  • Provider-flexible: local-first with Ollama, plus Gemini API support.
  • Tracks context over time through .rays memory and summaries.

Features

  • Codebase indexing (files, symbols, relationships, boundaries) via msgpack registries.
  • ChromaDB-backed vector retrieval for relevant chunks.
  • Multi-stage edit pipeline: task analysis -> selection -> planning -> permissions -> apply.
  • Interactive slash commands (/chat, /model, /mode, /git, /help).
  • Session-aware API key handling (reads env vars first; never persists keys in config.yaml).

Supported Providers

  • Ollama (local)
    • Default local endpoint: http://localhost:11434
    • By default, RAYS expects Ollama to be running on port 11434 unless you configure a different endpoint.
  • Gemini API
    • Uses GEMINI_API_KEY (or fallback GOOGLE_API_KEY).

Some builds may still show additional provider options in the selector, but this repository release is documented and supported around Ollama and Gemini.

Environment Variables

RAYS checks environment variables before prompting for API keys.

  • GEMINI_API_KEY: Gemini API key (preferred for Gemini)
  • GOOGLE_API_KEY: Gemini fallback key if GEMINI_API_KEY is not set

macOS/Linux (zsh/bash)

export GEMINI_API_KEY="your_gemini_key"

To make permanent in zsh:

echo 'export GEMINI_API_KEY="your_gemini_key"' >> ~/.zshrc
source ~/.zshrc

Windows (PowerShell)

setx GEMINI_API_KEY "your_gemini_key"

Open a new terminal after setx.

Installation

Option A: pipx (recommended for CLI users)

pipx install rays-core

Option B: pip

pip install rays-core

Development install from source

git clone https://github.com/<your-username>/RAYS-CORE.git
cd RAYS-CORE
python -m pip install -e .

Quick Start

rays /path/to/your/codebase

Or inside a repository:

cd /path/to/your/codebase
rays

The 3 Operating Modes

RAYS-CORE supports three workflow modes in practice:

  1. Editing mode (default pipeline)

    • Trigger: normal prompt without /chat.
    • Behavior: analyzes task, identifies symbols/files, negotiates permissions, plans edits, applies changes.
  2. New codebase generation mode

    • Trigger: prompts that clearly request creating a new project and low structural dependency on existing code.
    • Behavior: sets up project structure, negotiates creation scope, generates files iteratively.
  3. Chat mode (/chat)

    • Trigger: /chat <question>.
    • Behavior: read-only contextual Q&A; no edit pipeline.

Prompting Guide

Editing mode prompts (normal chat input)

  • "Refactor authentication middleware to support JWT refresh tokens."
  • "Fix the bug where user profile update fails on missing avatar."
  • "Add caching around get_project_metrics and include invalidation."

New codebase creation prompts

  • "Create a new FastAPI project with JWT auth, PostgreSQL, and Alembic migrations."
  • "Generate a minimal React + TypeScript dashboard app with routing and auth pages."

Chat mode prompts

Use:

/chat how does the permission negotiation pipeline work in this repo?

Slash Commands

  • /help - show commands
  • /chat <question> - read-only contextual Q&A
  • /model <name> - switch model
  • /mode auto - autonomous command execution
  • /mode ask - ask-permission command execution
  • /git - summarize current git changes
  • /clear - clear screen
  • /exit - exit RAYS

Execution Behavior (/mode)

  • Ask mode: requests confirmation for terminal actions.
  • Autonomous mode: executes without per-command confirmation.

Pipeline Architecture

  1. Provider + model selection
  2. Indexing of files/symbols/relationships/boundaries
  3. Vector DB sync for semantic retrieval
  4. Task analysis (intent, scope, terminal needs)
  5. Symbol detection and candidate retrieval
  6. Planning and permission negotiation
  7. Anchoring + code generation
  8. Execution and post-edit terminal actions
  9. Memory + summary persistence

Core modules:

  • rays_main.py - orchestrator and CLI loop
  • task_analyzer.py - intent and scope analysis
  • symbol_detection.py - symbol selection and retrieval
  • planning.py - implementation planning
  • execution.py + code_generator.py - code application
  • memory.py - persistent memory and summaries

Configuration

Primary configuration file: config.yaml

Key sections:

  • llm - provider, model, endpoint, runtime key override
  • embedding - embedding provider/model/endpoint
  • execution_mode - default ask or autonomous

config.yaml values are startup defaults. During CLI startup, selected provider/model values are updated and persisted automatically.

RAYS intentionally clears persisted API keys in config and uses runtime/session keys.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md for setup, branch hygiene, PR expectations, and review checklist.

Security

If you discover a security issue, see SECURITY.md for reporting guidance.

License

MIT License. See LICENSE.

Publishing Notes (Maintainers)

Build package

python -m pip install --upgrade build twine
python -m build
twine check dist/*

Publish to PyPI

python -m twine upload dist/*

Recommended install command for users

pipx install rays-core

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rays_core-1.5.1.tar.gz (116.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rays_core-1.5.1-py3-none-any.whl (125.4 kB view details)

Uploaded Python 3

File details

Details for the file rays_core-1.5.1.tar.gz.

File metadata

  • Download URL: rays_core-1.5.1.tar.gz
  • Upload date:
  • Size: 116.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for rays_core-1.5.1.tar.gz
Algorithm Hash digest
SHA256 c1f1271400be838c50180be622e6d004f4def8d4d9c5e4d19a36bf08fb8a6d04
MD5 edf4150e3ee62f0992c18a6fa9911066
BLAKE2b-256 4a5bd969bb5acf96a27fbe284b04ef72ce243bf160e23cc6faea91a927befd3d

See more details on using hashes here.

File details

Details for the file rays_core-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: rays_core-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 125.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.2

File hashes

Hashes for rays_core-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 569cf3971fe30e8fbe51dbe4989c3fdfcb2c1ab6b0864b4234601526f212832b
MD5 0676b0d15d52be4c80265b5230770cb4
BLAKE2b-256 8b32d0816f0f09c52cd41460b08b25de747df327c643dc9ddfbe93ab90e4bd12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page