Skip to content
roojsPublic

About

vala based gtk & terminal based desktop Ollama chat with tools - designed for local LLM work

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,766 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OLLMchat

OLLMchat Logo

Summary

OLLMchat is an AI application for interacting with LLMs (Large Language Models) such as Ollama and OpenAI. It has a full chat interface and a code assistant with semantic codebase search. The main application is a complete AI chat client, built from reusable libraries that other applications can use. The project is written in Vala, with GTK4 for the desktop UI.

The application is split in two. ollmfilesd is the file server: it handles file operations, file monitoring, and running applications, and it can run on another machine. The desktop and mobile clients talk to that server. A client can run on the same machine as the server, or on a separate desktop, tablet, or phone.

Development status: The chat client, tools, and file server are in everyday use. The skills / task-runner pipeline in liboccoder is mostly working and still early — useful for multi-step agent work, with rough edges. Local GGUF inference via CallLocal is optional at build time.

  • Main Application (ollmchat) - A complete AI chat client with:
    • Full-featured chat interface for interacting with LLMs (Ollama/OpenAI)
    • Settings dialog with model search and download from Ollama
    • Code assistant agent with semantic codebase search capabilities
    • Chat history management with session browser
    • Tool integration: ReadFile, EditMode, RunCommand, WebFetch, CodebaseSearch (semantic search), and MCP servers (Model Context Protocol)
    • Project management and file tracking
    • Support for multiple agent types (Just Ask, Code Assistant)
  • Core libraries - Chat, files, editor, markdown, and the file server
    • libollmchat.so - Ollama/OpenAI API access, agents, and optional local GGUF backend
    • libollmchatgtk.so - GTK chat widgets
    • libocmarkdown.so - Markdown parsing and rendering
    • libocmarkdowngtk.so - Markdown rendering widgets
    • libocsqlite.so - SQLite query builder
    • libocrpc.so - Binary RPC wire types for clients of the file server
    • libocfiles.so - Client-side file and project management
    • liboccoder.so - Code editor, skills/task runner, and project management
    • libocvector2.so - Vector index and semantic search, used by the file server
    • ollmfilesd - File server (file operations, monitoring, application execution, and semantic indexing; not a shared library)
  • Tool libraries - Agent tools and live model catalogs
    • liboctools.so - File, command, web fetch, and codebase-search tools
    • libocmcp.so - MCP (Model Context Protocol) client: load servers from ~/.config/ollmchat/mcp.json, discover tools, and expose them as mcp:{server_id}:{tool_name}
    • libollamaweb.so - Live search and model metadata from ollama.com
  • Example Tools - Command-line utilities demonstrating library capabilities:
    • ollmchat-cli - Command-line LLM chat and agent-tool testing (models, chat, streaming, --agent-tool)
    • oc-test-files - Test tool for file operations (read/write files with line ranges, project management, buffer operations, backups)
    • oc-markdown-test - Markdown parser test tool (parses markdown and outputs callback trace)
    • oc-html2md - HTML to Markdown converter (reads HTML from stdin, outputs Markdown)
    • oc-md2html - Markdown to HTML converter (converts markdown file to HTML)
    • oc-diff - Unified diff tool (compares two files and outputs differences in unified diff format)
    • oc-vector-index - Codebase indexing client for the file server
    • oc-vector-search - Semantic code search client for the file server
    • oc-migrate-editors - Project migration tool (migrates projects from Cursor editor configuration)
    • oc-test-fetch - Web fetch test tool (fetches web content from URLs with format conversion support)

Risky commands, such as executing bash and posting browser data, require approval. Approval can be permanent or temporary.

As with Pi, you can edit the prompt templates.

Demo

Screencast.From.2025-12-31.17-22-54.mp4

This is using gpt-oss to implement a plan and create code

Screencast.From.2025-12-09.17-10-55.mp4

This is the basic bootstrapping window - and a walk around some of the earlier features.

Note: If the videos above dont display, you can

watch it directly here.

watch it directly here.

Documentation

Online API documentation is available:

Implementation plans and roadmap:

Development standards (written for AI agents; mandatory for agents, helpful guides for human contributors):

Releases

Set up the APT or RPM repository from the roojs package repositories page, then:

sudo apt install ollmchat
sudo dnf install ollmchat

Windows, Android, and AppImage builds are on the GitHub Releases.

Artificial intelligence usage

This project was developed with the assistance of artificial intelligence.

  • Architecture and design direction are human-led
  • AI’s main role was writing implementation for review
  • Most of the coding was performed by AI
  • Changes were reviewed, revised, and approved before landing
  • Application code is treated as author-approved

Limited exceptions apply mainly to build scaffolding.

License

This project is licensed under the GNU Lesser General Public License version 3.0 (LGPL-3.0). See the LICENSE file for details.

Exceptions (third-party / derived files, e.g. Pi MIT prompt text): see licenses/README.md.

About

vala based gtk & terminal based desktop Ollama chat with tools - designed for local LLM work

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages