# Corvus - Hacktoberfest '26

> Source: <https://dev.to/ashishanand/corvus-hacktoberfest-26-2mhg>
> Published: 2026-10-31 12:10:04+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26)*

## 
  
  
  What I Built

**Corvus** is a haunted-terminal AI workspace that runs **Gemma** entirely on your own computer. You open it, pick a Gemma model, and talk to it. The reply streams in word by word from your own machine, inside an interface that looks like a forgotten laboratory terminal decorated for the Day of the Dead.

I read "Ghost in the Machine" literally. The ghost is Gemma, an intelligence that lives inside your laptop instead of in a distant data center. The look blends two traditions. Halloween brings the mystery: obsidian black, scanlines, ravens and ember light. Día de los Muertos brings the warmth: marigolds, papel picado banners and the idea that remembering is a way of keeping someone alive. That second idea shaped the **Memory Vault**, where every conversation is kept locally so you can reopen it later.

What it does:

- Streams real Gemma responses through Ollama, with stop, regenerate and retry
- Detects the models you have installed and prefers a Gemma model automatically
- 
**Works with other Ollama models too.** Gemma is the default, but any chat model you've pulled into Ollama appears in the model picker, so you can switch to Llama, Mistral, Qwen or others without changing any code
- Saves, searches, renames, reopens and exports every session in the Memory Vault
- Includes **Whisper Studio** for prompt experiments with a custom system instruction, temperature and token limit
- Shows honest diagnostics: real connection status, latency, request counts and the last error
- Lets you slide the whole interface between Halloween and Día de los Muertos
- Gives you slots for your own images and videos, all controlled from one config file
- 
**Known hauntings 👻** The machine isn’t fully at peace. On any dimension (device), there are some scary mood changes of machine (bugs added intentionally). I’ve documented few honestly instead of hiding them, so if the ghost misbehaves for you, it’s not your setup.

## 
  
  
  Demo

## 
  
  
  Code

### 
      Meet the ghosts of intelligence with open AI.
    

 

# Corvus

*Meet the ghosts of intelligence with open AI.*

Corvus is a local-first AI workspace for [Ollama](https://ollama.com) and open-weight models such as Gemma. It pairs a haunted-terminal Halloween look with the marigolds and papel picado of Día de los Muertos, and it is built with plain HTML, CSS and JavaScript plus a small Python launcher that has no dependencies.

Chats stream from a model running on your own computer. There are no API keys, no accounts, no analytics and no hosted AI service involved.

Built for Hacktoberfest under the challenge [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26).

## Table of contents

## Features

**AI workspace (The Séance)**

- Real streaming chat with Ollama's `/api/chat` endpoint, parsing its newline-delimited JSON as…

 
 
## 
  
  
  How I Built It

**Gemma is the engine of the whole project.** Everything else in Corvus exists to give it a home.

- 
**Model:** Google's open-weight**Gemma** , run locally through**Ollama** . Corvus reads the models you have installed and prefers any Gemma tag it finds, so it works with whichever size fits your hardware instead of hardcoding one.
- 
**Other models:** because Corvus talks to Ollama's standard`/api/chat` endpoint, it isn't tied to Gemma. Pull any chat model with`ollama pull <model>` , click**Refresh models** , and it shows up in the picker. Behavior varies by model, since each has its own style, context size and speed, and some Whisper Studio options may be handled differently depending on the model and your Ollama version. Gemma stays the default and the model the app is designed around.
- 
**Streaming:** the app calls`/api/chat` and parses the newline-delimited JSON stream as it arrives. Network chunks don't always line up with JSON lines, so the parser buffers partial lines.
- 
**Steering the model:** the system prompt is editable, and Whisper Studio passes real Ollama options (`temperature` ,`num_predict` ) so you can see how settings change its voice.
- 
**Frontend:** plain HTML, CSS and vanilla JavaScript with no framework. It has custom SVG art, theme variables, hash-based routing, and a small Markdown renderer that escapes model output before formatting it, because model text is untrusted.
- 
**Backend:** a dependency-free Python launcher serves the app on`127.0.0.1` and proxies only three allow-listed Ollama routes. This avoids browser CORS problems without exposing Ollama to the network, and it never logs conversations.
- 
**Memory:** chats are stored in the browser's local storage. They are unencrypted, and the app says so.
- 
**Honest status:** the "Connected" badge only appears after a real request succeeds. There are separate states for Disconnected and Model unavailable. If a model isn't installed, Corvus shows the install command and never silently switches to another service or downloads anything without your consent.

## 
  
  
  Why Does Open Innovation Matter?

A closed API would have made this a different, smaller project. Because Gemma and the other models Ollama serves are open-weight:

- 
**Your conversations never leave your machine.** For an app built around memory and remembrance, that is the point.
- 
**It costs nothing per message.** There is no API key, quota or bill, so anyone with a laptop can run it.
- 
**You choose the model, not a vendor.** Use Gemma at whatever size fits your hardware, or switch to another Ollama model you prefer. Nobody can retire it, reprice it or change it underneath you.
- 
**It can work without internet.** Once Ollama, a model and the app files are installed, chatting needs no connection.
- 
**Anyone can inspect and modify it.** The app is plain files and a short Python script, so people can see exactly where their prompts go.

There are honest limits. You need enough RAM for the model you choose. Open-weight is not the same as fully open source, and every model has its own terms of use that you should read before commercial use. Corvus is local-first software built around open models, and it makes no claim that everything is unrestricted.

## 
  
  
  The Spirit of It

Día de los Muertos is about keeping the people we love close by remembering them. I wanted a machine that felt like that: not a cold chat box, but a candlelit archive where conversations are kept instead of discarded, and where the intelligence answering you lives in your own home, on your own hardware.

The moment I built it for is the first reply. You press Enter, three small lights pulse, and words begin to appear from a model running on the computer in front of you, with no cloud in between.

## 
  
  
  Prize Categories

**Best Use of Gemma.** Gemma is the core of the project, not an add-on. It runs locally through Ollama, Corvus automatically prefers and selects installed Gemma models, and every feature (chat, Whisper Studio experiments, the Memory Vault) is built around talking to it. Other Ollama models are supported as a flexibility bonus, but Gemma is the default and the model the experience is designed for. The app is built around what makes an open-weight Gemma valuable: privacy, zero per-message cost, and full user control over where inference happens.
