Skip to content

yashksaini-coder/oracle

Repository files navigation

🔮 Oracle

A blazing-fast Rust code inspector for the terminal

CI License: MIT Crates.io Rust


Oracle is a terminal-based application for exploring Rust codebases. It parses your Rust source files and provides an interactive interface to browse functions, structs, enums, traits, and more — all without leaving your terminal.

Built with Ratatui for a smooth, responsive TUI experience.

Built With Ratatui

Oracle Demo GIF

✨ Features

  • 📦 Code Analysis — Parses Rust source files using syn:

    • Functions (parameters, return types, async/const/unsafe)
    • Structs (fields, derives, generics)
    • Enums (variants with all field types)
    • Traits (methods, associated types, supertraits)
    • Impl blocks (inherent and trait implementations)
    • Modules, Type aliases, Constants, Statics
  • 🔍 Smart Search — Fuzzy matching with real-time filtering

  • 📋 Dependency Analysis — Visualize Cargo.toml dependencies

  • 🎨 Multiple Themes — Default Dark, Nord, Catppuccin Mocha, Dracula

  • ⚡ Smooth Animations — Selection highlights, tab transitions

  • ⌨️ Vim-style Navigationj/k for movement, / for search

Oracle Crates Tab Demo

📦 Installation

From crates.io (recommended)

With Rust and Cargo installed:

cargo install oracle-tui

The binary is still named oracle; run it with oracle.

From source

git clone https://github.com/yashksaini-coder/oracle.git
cd oracle
cargo install --path .
# or: make install

Pre-built binaries

See Releases for Linux (x86_64), macOS (x86_64, Apple Silicon), and Windows (x86_64) binaries.

🚀 Usage

Oracle Copilot Chat Demo

# Cd into the project directory
cd path/to/rust-project
# Analyze current directory (must be a Cargo project root or folder with .rs files)
oracle

⌨️ Keyboard Shortcuts

Key Action
Focus & panels
Tab / Shift+Tab Next / previous panel (search → list → inspector)
/ Focus search
Esc Clear search, back to list, or close popup
List & inspector
/ or j / k Move selection / scroll inspector
Enter / / l Open item / focus inspector
/ h Back to list (e.g. exit crate view)
Home First item
G / End Last item
PgUp / PgDn Page up / down
Tabs
1 2 3 4 Types · Functions · Modules · Crates
Crates tab only
o Open docs.rs in browser
c Open crates.io in browser
Other
C Open Copilot chat (ask about current item)
t Cycle theme
S Settings overlay
? Toggle help
q / Esc Quit
Links
g Open GitHub repo in browser
s Open Sponsor page in browser

🛠️ Development

# See all commands
make

# Install development tools
make dev-setup

# Full check (format, lint, typecheck)
make check

# Run linter
make lint

# Run tests
make test

# Build release
make release

📤 Releasing (maintainers)

  • Publish to crates.io (after cargo login): make publish-dry-run then make publish. The crate is published as oracle-tui (the name "oracle" is taken by another project on crates.io).
  • GitHub Release: Push a version tag (e.g. v0.1.0). The release workflow builds binaries for Linux, macOS (Intel + Apple Silicon), and Windows and creates a release. Optionally set CARGO_REGISTRY_TOKEN in repo secrets to auto-publish to crates.io on tag push.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes using Conventional Commits
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Commit Convention

We use Conventional Commits. Examples:

  • feat: add new search feature
  • fix: correct parsing error
  • docs: update README
  • refactor!: change API structure (breaking change)

Star History

Star History Chart

📄 License

This project is licensed under the MIT License.


About

Your Rust codebase, revealed It parses your Rust source files and provides an interactive interface to browse functions, structs, enums, traits, and more — all inside your terminal.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors