K-MeleonCCF — a lightweight, scriptable Windows browser
Windows · Open Source · GPL v2
A lightweight browser
you can actually reshape.
K-MeleonCCF pairs a native Windows shell with the Goanna engine,<br>a Lua scripting layer that hot-reloads on save, and a built-in<br>AI agent that drives the page for you. No Electron. No telemetry.<br>No 4 GB on disk before you've opened a tab.
Download for Windows<br>x64 · ~50 MB
See what's inside
~50 MB installed
x64 native , no runtime
Goanna 6 engine
K-Meleon<br>Docs<br>Source
🔒<br>https://k-meleon.local/
-- lua/autoload/hello.lua (save → live in ~150ms)<br>function on_compose()<br>km.NavigateTo("https://mail.example.com/compose", OPEN_NEWTAB)<br>agent.say("Drafting your reply...")<br>end
-- the change is live; no restart, no rebuild.
~150ms
Lua hot-reload<br>on every save
50+
Built-in toolbar &<br>menu commands
22
Bundled C++<br>plugins
GPLv2
Free, open source,<br>auditable
Genuinely lightweight
Native MFC shell, x64 binary, no Electron, no Chromium overlay.<br>Idle RAM is measured in tens of megabytes, not hundreds.
🦎
Goanna 6 engine
Built on roytam1's actively maintained Goanna 6 (the Pale Moon<br>lineage of UXP), with K-Meleon's XPCOM embedding so plugins<br>keep working.
🪄
Hot-reload scripting
Edit any lua/*.lua and a directory watcher<br>re-parses it in place — no restart, no re-login. Even the<br>Preferences dialog rebuilds itself.
🤖
AI agent sidebar
Describe a task in plain English; the agent reads the page,<br>clicks, types, and reports back. Bring your own DeepSeek key.
🛡️
Live adblock
Adblock Plus syntax. Edit rules in Preferences or just drag a<br>link image to "block." The kplugin watches the file and<br>re-parses on save.
🖱️
Mouse gestures
Right-drag to navigate, with an optional orange trail. Left-drag<br>a link in any direction to open it in a background or foreground<br>tab.
🗂️
Real tabs
Native tab bar, double-click empty space for a new tab, drag-to-<br>close, configurable middle/right-click behaviour. Bookmarks,<br>sessions, and history all built in.
🔒
No telemetry, no phone-home
Safe-browsing pings disabled by default, no usage stats, no<br>"improve our product" toggles hidden behind menus. It just runs.
Built-in agent<br>A browser that<br>can drive itself.
Open the sidebar, type what you want — "find the cheapest<br>flight from Chicago to LA on Google Flights" — and watch<br>the agent navigate, fill forms, and follow links until it has<br>your answer.
Reads condensed page state on every step
One action per think — navigate, click, type, scroll, wait
Runs on its own thread so the UI stays smooth
Pluggable: any OpenAI-compatible endpoint works
K-Meleon Agent ● running
Agent<br>K-MeleonCCF Agent ready.<br>Describe a task — for example<br>find the cheapest flight from Chicago to LA on Google Flights.
You<br>open my inbox and draft a reply to the latest message
→ navigate https://mail.example.com/inbox
→ click [data-thread="newest"] — OK
→ click [gh="r"] — OK
Agent<br>Reply composer is open. What should I write?
Scripting layer<br>Customize without<br>a build step.
The whole UI — toolbars, menus, the Preferences dialog, the<br>right-click context menu — is built from ~40 Lua<br>scripts in your profile. Add a button, redefine a<br>keybinding, or write a brand-new feature: save the file and<br>it's live before you finish blinking.
Lua 5.1 with full file/network/DOM access
30+ km.* bindings exposed to scripts
Live reload via ReadDirectoryChangesW
Errors logged, never crash the browser
lua/autoload/quickopen.lua<br>saved · reloaded 132 ms ago
-- Ctrl+Shift+G: jump to GitHub for the current page's repo.<br>function github_for_current_tab()<br>local _, url = km.GetDocInfo(hwnd)<br>local host, path = url:match("^https?://([^/]+)(/.*)")<br>if host == "npmjs.com" then<br>local pkg = path:match("/package/(.+)")<br>km.NavigateTo("https://github.com/search?q=" .. pkg, OPEN_NEWTAB)<br>end<br>end
setkey("CTRL SHIFT G", "github_for_current_tab")
Windows · x64
v1.02
ZIP · 43.9 MB
SHA-256: 613a8142…edb692a1
Source
github
C++ · Lua · GPL v2
System requirements
Windows 10 or 11 (x64)
~50 MB free disk, ~80 MB RAM at idle
Optional: a DeepSeek API key to enable the AI agent