Skip to content

FluidFortune/wozbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WozBot

A boisterous, joke-cracking, Apple-history-obsessed local AI chatbot built on llama.cpp.

WozBot is the digital ghost of Steve Wozniak's legendary Dial-A-Joke phone line — the one he ran from his apartment in the 1970s where you could call in and hear him tell terrible jokes. Now he runs locally on your machine, tells bad tech puns, explains the history of Apple Computer from the inside, and complains theatrically about the cloud.

No API keys. No subscriptions. No data leaving your machine. Just Woz, a quantized language model, and whatever hardware you have lying around.

"I am WozBot. I run locally, I tell bad jokes, and I have 1.5 billion parameters dedicated entirely to puns. The engineers said that was wasteful. The engineers were wrong."


What WozBot Can Do

  • Deliver a random boot greeting every session
  • Tell terrible tech dad jokes on demand
  • Recount the full history of Apple Computer from Woz's perspective
  • Discuss the Homebrew Computer Club, the Blue Box, the Apple I and II, Xerox PARC, and more
  • Roast Steve Jobs affectionately and at length
  • Explain why the cloud is just someone else's mainframe wearing a trenchcoat
  • Get unreasonably excited about floppy disk controllers

Requirements

  • A Linux machine (tested on Ubuntu 22.04 and 24.04, x86_64 and ARM)
  • ~2GB free disk space for the model
  • 4GB+ RAM (8GB recommended)
  • build-essential, cmake, git, curl, wget

Express Setup

You want WozBot on the internet. You have a domain and a Cloudflare account.

You will need:

  • A Cloudflare account with a domain managed through it
  • A Linux server or VM (Oracle Cloud free tier works perfectly — see notes below)
  • SSH access to that server

Steps:

1. Clone the repo

git clone https://github.com/fluidfortune/wozbot.git
cd wozbot

2. Build llama.cpp

sudo apt install -y build-essential cmake git curl wget
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build
cmake --build build --config Release -j4
cd ..

3. Download the model

mkdir -p ~/models
wget -q --show-progress \
  "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf" \
  -O ~/models/wozbot-model.gguf

4. Set up Nginx

sudo apt install -y nginx
sudo cp config/nginx-wozbot /etc/nginx/sites-available/wozbot
sudo ln -s /etc/nginx/sites-available/wozbot /etc/nginx/sites-enabled/wozbot
sudo rm -f /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

5. Set up Cloudflare tunnel

# Install cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

# Authenticate
cloudflared tunnel login

# Create tunnel
cloudflared tunnel create wozbot

# Edit config — replace YOUR_TUNNEL_ID and YOUR_DOMAIN
cp config/cloudflared-config.yml ~/.cloudflared/config.yml
nano ~/.cloudflared/config.yml

# Route DNS
cloudflared tunnel route dns wozbot YOUR_DOMAIN

6. Copy the web UI

mkdir -p ~/wozbot/public
cp public/index.html ~/wozbot/public/

7. Start WozBot

chmod +x wozbot_start.sh
bash wozbot_start.sh

Visit your domain. WozBot will introduce himself.


Developer Setup

You want to run WozBot locally, hack on it, or make it your own. No domain required. No Cloudflare required. Just your machine and a browser.

1. Clone and build

git clone https://github.com/fluidfortune/wozbot.git
cd wozbot

sudo apt install -y build-essential cmake git curl wget
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp && cmake -B build && cmake --build build --config Release -j4
cd ..

2. Download the model

mkdir -p ~/models
wget -q --show-progress \
  "https://huggingface.co/Qwen/Qwen2.5-1.5B-Instruct-GGUF/resolve/main/qwen2.5-1.5b-instruct-q4_k_m.gguf" \
  -O ~/models/wozbot-model.gguf

3. Start llama-server

~/llama.cpp/build/bin/llama-server \
  --model ~/models/wozbot-model.gguf \
  --host 127.0.0.1 \
  --port 8080 \
  --ctx-size 2048 \
  --threads 4

4. Serve the UI

Open a second terminal:

cd ~/wozbot/public
python3 -m http.server 3000

5. Open your browser

Navigate to http://localhost:3000

WozBot is running entirely on your machine. No internet connection required after the model download.


Making WozBot Your Own

WozBot's entire personality lives in a single system prompt inside public/index.html. Find the SYSTEM_PROMPT variable near the top of the script block and rewrite it. Change the character, the knowledge base, the tone, the jokes. Make it your company mascot. Make it your D&D dungeon master. Make it your customer service bot that actually has a personality.

The architecture is the same regardless of what you put in the prompt:

Browser → Nginx (or Python server) → llama.cpp → Your model → Your character

That is all WozBot is. A character prompt, a model, and a web UI.


Oracle Cloud Free Tier

WozBot was developed and tested on Oracle Cloud's Always Free tier — a VM.Standard.A1.Flex instance with 4 ARM OCPUs and 24GB RAM. It costs nothing. Oracle provides this permanently as part of their free tier. You will need a credit card for verification but will not be charged as long as you stay within the free limits.

The catch: ARM instance availability in popular US regions can be limited. Try US West (San Jose), Frankfurt, or Singapore if your first region shows capacity errors.


Auto-Start on Reboot

To have WozBot survive server reboots automatically:

sudo cp config/wozbot-llama.service /etc/systemd/system/
sudo cp config/wozbot-tunnel.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable wozbot-llama wozbot-tunnel

About This Project

WozBot is a proof of concept built to demonstrate what you can do with The Phantom — a full local AI agent framework developed by Fluid Fortune.

WozBot shows you the engine. A lightweight, single-character chatbot with a hardcoded personality, running entirely on local hardware with no cloud dependencies and no ongoing costs.

The Phantom takes that same engine and gives you the keys. Multi-project sandboxing, a document library, a workshop for saving generated files, streaming chat, model switching, web scouting, podcast generation, and a full API. It runs on your machine, it speaks to your models, and it does what you tell it to do.

WozBot is what happens when you constrain The Phantom to one character and one purpose and point it at the internet. It is limited only by your imagination — and the constraints of your hardware.

The Phantom → Fluid Fortune →


License

AGPL v3. Free for personal and community use. Commercial licensing available — contact Fluid Fortune.


Built By

Fluid Fortune Building localized intelligence. Adhering to the Clark Beddows Protocol. We don't do cloud.

About

WozBot: A fun and wacky example of how localized AI placed on a server (or your computer as a localhost) can pretend to be Steve Wozniak! Complete Alpha proof-of-concept for our main AI project, The Phantom.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors