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."
- 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
- 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
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 wozbot2. 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.gguf4. 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 nginx5. 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_DOMAIN6. 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.shVisit your domain. WozBot will introduce himself.
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.gguf3. 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 44. Serve the UI
Open a second terminal:
cd ~/wozbot/public
python3 -m http.server 30005. Open your browser
Navigate to http://localhost:3000
WozBot is running entirely on your machine. No internet connection required after the model download.
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.
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.
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-tunnelWozBot 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.
AGPL v3. Free for personal and community use. Commercial licensing available — contact Fluid Fortune.
Fluid Fortune Building localized intelligence. Adhering to the Clark Beddows Protocol. We don't do cloud.