Implements Phase 9: Remoting / Cloud Hybrid Deployment with complete WebSocket transport support and comprehensive failover mechanisms. **WebSocket Transport (remote_client.rs):** - Added WebSocket support to RemoteMcpClient using tokio-tungstenite - Full bidirectional JSON-RPC communication over WebSocket - Connection establishment with error handling - Text/binary message support with proper encoding - Connection closure detection and error reporting **Failover & Redundancy (failover.rs - 323 lines):** - ServerHealth tracking: Healthy, Degraded, Down states - ServerEntry with priority-based selection (lower = higher priority) - FailoverMcpClient implementing McpClient trait - Automatic retry with exponential backoff - Circuit breaker pattern (5 consecutive failures triggers Down state) - Background health checking with configurable intervals - Graceful failover through server priority list **Configuration:** - FailoverConfig with tunable parameters: - max_retries: 3 (default) - base_retry_delay: 100ms with exponential backoff - health_check_interval: 30s - circuit_breaker_threshold: 5 failures **Testing (phase9_remoting.rs - 9 tests, all passing):** - Priority-based server selection - Automatic failover to backup servers - Retry mechanism with exponential backoff - Health status tracking and transitions - Background health checking - Circuit breaker behavior - Error handling for edge cases **Dependencies:** - tokio-tungstenite 0.21 - tungstenite 0.21 All tests pass successfully. Phase 9 specification fully implemented. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
OWLEN
Terminal-native assistant for running local language models with a comfortable TUI.
What Is OWLEN?
OWLEN is a Rust-powered, terminal-first interface for interacting with local large language models. It provides a responsive chat workflow that runs against Ollama with a focus on developer productivity, vim-style navigation, and seamless session management—all without leaving your terminal.
Alpha Status
This project is currently in alpha and under active development. Core features are functional, but expect occasional bugs and breaking changes. Feedback, bug reports, and contributions are very welcome!
Screenshots
The OWLEN interface features a clean, multi-panel layout with vim-inspired navigation. See more screenshots in the images/ directory.
Features
- Vim-style Navigation: Normal, editing, visual, and command modes.
- Streaming Responses: Real-time token streaming from Ollama.
- Advanced Text Editing: Multi-line input, history, and clipboard support.
- Session Management: Save, load, and manage conversations.
- Theming System: 10 built-in themes and support for custom themes.
- Modular Architecture: Extensible provider system (currently Ollama).
Getting Started
Prerequisites
- Rust 1.75+ and Cargo.
- A running Ollama instance.
- A terminal that supports 256 colors.
Installation
Linux & macOS
The recommended way to install on Linux and macOS is to clone the repository and install using cargo.
git clone https://github.com/Owlibou/owlen.git
cd owlen
cargo install --path crates/owlen-cli
Note for macOS: While this method works, official binary releases for macOS are planned for the future.
Windows
The Windows build has not been thoroughly tested yet. Installation is possible via the same cargo install method, but it is considered experimental at this time.
Running OWLEN
Make sure Ollama is running, then launch the application:
owlen
If you built from source without installing, you can run it with:
./target/release/owlen
Using the TUI
OWLEN uses a modal, vim-inspired interface. Press ? in Normal mode to view the help screen with all keybindings.
- Normal Mode: Navigate with
h/j/k/l,w/b,gg/G. - Editing Mode: Enter with
iora. Send messages withEnter. - Command Mode: Enter with
:. Access commands like:quit,:save,:theme.
Documentation
For more detailed information, please refer to the following documents:
- CONTRIBUTING.md: Guidelines for contributing to the project.
- CHANGELOG.md: A log of changes for each version.
- docs/architecture.md: An overview of the project's architecture.
- docs/troubleshooting.md: Help with common issues.
- docs/provider-implementation.md: A guide for adding new providers.
Configuration
OWLEN stores its configuration in ~/.config/owlen/config.toml. This file is created on the first run and can be customized. You can also add custom themes in ~/.config/owlen/themes/.
See the themes/README.md for more details on theming.
Roadmap
We are actively working on enhancing the code client, adding more providers (OpenAI, Anthropic), and improving the overall user experience. See the Roadmap section in the old README for more details.
Contributing
Contributions are highly welcome! Please see our Contributing Guide for details on how to get started, including our code style, commit conventions, and pull request process.
License
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.
