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
.raysmemory 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
11434unless you configure a different endpoint.
- Default local endpoint:
- Gemini API
- Uses
GEMINI_API_KEY(or fallbackGOOGLE_API_KEY).
- Uses
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 ifGEMINI_API_KEYis 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:
-
Editing mode (default pipeline)
- Trigger: normal prompt without
/chat. - Behavior: analyzes task, identifies symbols/files, negotiates permissions, plans edits, applies changes.
- Trigger: normal prompt without
-
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.
-
Chat mode (
/chat)- Trigger:
/chat <question>. - Behavior: read-only contextual Q&A; no edit pipeline.
- Trigger:
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_metricsand 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
- Provider + model selection
- Indexing of files/symbols/relationships/boundaries
- Vector DB sync for semantic retrieval
- Task analysis (intent, scope, terminal needs)
- Symbol detection and candidate retrieval
- Planning and permission negotiation
- Anchoring + code generation
- Execution and post-edit terminal actions
- Memory + summary persistence
Core modules:
rays_main.py- orchestrator and CLI looptask_analyzer.py- intent and scope analysissymbol_detection.py- symbol selection and retrievalplanning.py- implementation planningexecution.py+code_generator.py- code applicationmemory.py- persistent memory and summaries
Configuration
Primary configuration file: config.yaml
Key sections:
llm- provider, model, endpoint, runtime key overrideembedding- embedding provider/model/endpointexecution_mode- defaultaskorautonomous
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rays_core-1.5.0.tar.gz.
File metadata
- Download URL: rays_core-1.5.0.tar.gz
- Upload date:
- Size: 97.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afc4f2090e76a9b74ea280b3afeb4a77a591e3e18ea0d797d32dfae62cc3e2d9
|
|
| MD5 |
4bf533c843bd66c18308765aaf5bc197
|
|
| BLAKE2b-256 |
3dcd2f88c276e2d6b38dd673962a0b6773bd57f98f2c3cca758c96aa7e74f04c
|
File details
Details for the file rays_core-1.5.0-py3-none-any.whl.
File metadata
- Download URL: rays_core-1.5.0-py3-none-any.whl
- Upload date:
- Size: 106.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
deb1b279c81692bc083c17e7f67a781efd3d1d3682f3851ae2a68c781d83eef8
|
|
| MD5 |
689768cb7b35d4deaa5bd6dffb6b5782
|
|
| BLAKE2b-256 |
37ae52a89b5479b8e78ee6c0224025e81409f9319d39d68f0979233ade14bf36
|