OWLEN

Terminal-native assistant for running local language models with a comfortable TUI.

Status Rust License

Pre-Alpha Status

  • This project is currently pre-alpha and under active development.
  • Expect breaking changes, missing features, and occasional rough edges.
  • Feedback, bug reports, and ideas are very welcome while we shape the roadmap.

What Is OWLEN?

OWLEN is a Rust-powered, terminal-first interface for interacting with local large language models. It focuses on a responsive chat workflow that runs against Ollama and surfaces the tools needed to manage sessions, inspect project context, and iterate quickly without leaving your shell.

Current Highlights

  • Chat-first terminal UI built with ratatui and crossterm.
  • Out-of-the-box Ollama integration with streaming responses.
  • Persistent configuration, model caching, and session statistics.
  • Project-aware context loading (reads OWLEN.md when present).
  • Experimental coding assistant mode (opt-in build feature).

Getting Started

Prerequisites

  • Rust 1.75+ and Cargo (rustup recommended).
  • A running Ollama instance with at least one model pulled (defaults to http://localhost:11434).
  • A terminal that supports 256 colours.

Clone and Build

git clone https://github.com/Owlibou/owlen.git
cd owlen
cargo build -p owlen-cli

Run the Chat Client

Make sure Ollama is running, then launch:

cargo run -p owlen-cli --bin owlen

(Optional) Try the Coding Client

The coding-focused TUI is experimental and ships behind a feature flag:

cargo run -p owlen-cli --features code-client --bin owlen-code

Using the TUI

  • i / Enter focus the input box.
  • Enter send the current message.
  • Shift+Enter / Ctrl+J insert a newline while editing.
  • m open the model selector.
  • n start a fresh conversation.
  • c clear the current chat history.
  • h open inline help.
  • q quit.

The status line surfaces hints, error messages, and streaming progress.

Configuration

OWLEN stores configuration in ~/.config/owlen/config.toml. The file is created on first run and can be edited to customise behaviour:

[general]
default_model = "llama3.2:latest"
enable_streaming = true
project_context_file = "OWLEN.md"

[providers.ollama]
provider_type = "ollama"
base_url = "http://localhost:11434"

Additional sections cover UI preferences, file limits, and storage paths. Each client persists its latest selections back to this file on exit.

Repository Layout

  • crates/owlen-core shared types, configuration, and session orchestration.
  • crates/owlen-ollama provider implementation that speaks to the Ollama API.
  • crates/owlen-tui ratatui-based UI, helpers, and event handling.
  • crates/owlen-cli binaries (owlen, owlen-code) wiring everything together.
  • tests integration-style smoke tests.

Development Notes

  • Standard Rust workflows apply (cargo fmt, cargo clippy, cargo test).
  • The codebase uses async Rust (tokio) for event handling and streaming.
  • Configuration and chat history are cached locally; wipe ~/.config/owlen to reset.

Roadmap

  • Add autoscroll.
  • Push user message before loading the LLM response.
  • Add support for "thinking" models.
  • Add theming options.
  • Provide proper configuration UX.
  • Add chat-management tooling.
  • Reactivate and polish the coding client.
  • Add support for streaming responses.
  • Add support for streaming chat history.
  • Add support for streaming model statistics.
  • Add coding client
    • Add support for in project code navigation.
    • Add support for code completion.
    • Add support for code formatting.
    • Add support for code linting.
    • Add support for code refactoring.
    • Add support for code navigation.
    • Add support for code snippets.
    • Add support for in project config folder.
  • Add support for more local LLM providers.
  • Add support for cloud LLM providers.

Contributing

Contributions are encouraged, but expect a moving target while we stabilise the core experience. Opening an issue before a sizeable change helps coordinate the roadmap.

License

License terms are still being finalised for the pre-alpha release.

Description
No description provided
Readme AGPL-3.0 2 MiB
2025-10-03 07:57:53 +02:00
Languages
Rust 99.5%
Shell 0.5%