https://github.com/mrcesar107/ruby_coded
An AI code agent created with Ruby (similar to Claude Code or Codex)
https://github.com/mrcesar107/ruby_coded
ai ai-agents ruby ruby-gem
Last synced: 3 months ago
JSON representation
An AI code agent created with Ruby (similar to Claude Code or Codex)
- Host: GitHub
- URL: https://github.com/mrcesar107/ruby_coded
- Owner: MrCesar107
- License: mit
- Created: 2026-03-14T07:30:32.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-15T08:17:12.000Z (3 months ago)
- Last Synced: 2026-04-15T08:30:34.724Z (3 months ago)
- Topics: ai, ai-agents, ruby, ruby-gem
- Language: Ruby
- Homepage:
- Size: 207 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# RubyCoded
```
/\
/ \
/ \ ____ _ ____ _
/------\ | _ \ _ _| |__ _ _ / ___|___ __| | ___ __| |
/ \ / \ | |_) | | | | '_ \| | | | | | / _ \ / _` |/ _ \ / _` |
/ \/ \ | _ <| |_| | |_) | |_| | | |__| (_) | (_| | __/ (_| |
\ /\ / |_| \_\\__,_|_.__/ \__, | \____\___/ \__,_|\___| \__,_|
\ / \ / |___/
\/ \/
\ /
\ /
\/
```
An AI-powered terminal coding assistant built in Ruby. Chat with LLMs, let an agent edit your project files, or plan tasks — all from your terminal.
## Features
- **Chat mode** — Talk to an LLM directly in a full terminal UI (TUI) built with [ratatui](https://github.com/nicholasgasior/ratatui-ruby)
- **Agent mode** — The model can read, write, edit, and delete files in your project, create directories, and run shell commands with user confirmation
- **Plan mode** — Generate structured plans before implementing, with interactive clarification questions and auto-switch to agent mode when ready
- **Multi-provider support** — Works with OpenAI and Anthropic out of the box (OAuth and API key authentication)
- **Tool confirmation** — Write and dangerous operations require explicit approval; safe operations (read, list) run automatically
- **Token & cost tracking** — Live status bar showing token usage and estimated session cost
- **Plugin system** — Extend the chat with custom state, input handlers, renderer overlays, and commands
- **Slash commands** — `/agent`, `/plan`, `/model`, `/history`, `/tokens`, `/help`, and more
## Requirements
- Ruby >= 3.3.0
- An OpenAI or Anthropic account (API key or OAuth)
## Installation
```bash
gem install ruby_coded
```
## Usage
Navigate to any project directory and run:
```bash
ruby_coded
```
On first launch you'll be asked to authenticate with a provider. After that, you're dropped into chat mode.
### Modes
| Command | Description |
|---|---|
| `/agent on` | Enable agent mode (file tools + shell access) |
| `/agent off` | Disable agent mode |
| `/plan on` | Enable plan mode (read-only tools, structured planning) |
| `/plan off` | Disable plan mode |
| `/plan save` | Save the current plan to a file |
| `/model` | Switch to a different model |
| `/tokens` | Show detailed token usage breakdown |
| `/history` | Show conversation history |
| `/clear` | Clear the conversation |
| `/help` | Show all available commands |
### Agent mode
When agent mode is active, the model has access to these tools:
| Tool | Risk level | Description |
|---|---|---|
| `read_file` | Safe | Read file contents |
| `list_directory` | Safe | List directory contents |
| `write_file` | Confirm | Write a new file |
| `edit_file` | Confirm | Search and replace in a file |
| `create_directory` | Confirm | Create a new directory |
| `delete_path` | Dangerous | Delete a file or directory |
| `run_command` | Dangerous | Execute a shell command |
Safe tools run without asking. Confirm and dangerous tools show the operation details and wait for your approval (`y` to approve, `n` to reject, `a` to approve all remaining).
### Plan mode
Plan mode restricts the model to read-only tools and a planning-oriented system prompt. The model will analyze your project and propose a structured plan. If the model needs clarification, it presents interactive options you can select or answer with custom text.
## Keyboard shortcuts
| Key | Action |
|---|---|
| `Enter` | Send message |
| `Esc` | Cancel streaming / clear input |
| `Ctrl+C` | Quit |
| `Up/Down` | Scroll chat history |
| `Left/Right` | Move cursor in input |
| `Home/End` | Jump to start/end of input |
| `Tab` | Autocomplete commands |
## Development
```bash
git clone https://github.com/MrCesar107/ruby_code.git
cd ruby_code
bundle install
bundle exec rake test
```
To run the application locally:
```bash
bundle exec exe/ruby_coded
```
## What's next
- Find a way to update the autocomplete plugin when a new command is added []
- Display context window size (depending on the model) []
- UI element to indicate the AI is performing a task []
- Add the possibility to create custom commands []
- Skills implementation []
- Implement Google Auth for Gemini []
- Session recovery system by ID []
## Contributing
Contributions are welcome! To get started:
1. Fork the repository
2. Create a new branch for your feature or fix (`git checkout -b my-feature`)
3. Make your changes and add tests if applicable
4. Make sure all tests pass (`bundle exec rake test`)
5. Commit your changes (`git commit -m "Add my feature"`)
6. Push to your fork (`git push origin my-feature`)
7. Open a Pull Request against the `main` branch of this repository
Your PR will be reviewed and merged if everything looks good. If you're unsure about a change, feel free to open an issue first to discuss it.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).