A personal LLM assistant that runs on Cloudflare Workers and maintains a user-guided compounding knowledge base across conversations.
When starting a new conversation, choose which historical context you want it to have by choosing a category and topic. Additional context from new chats is compounded daily or on request.
It's simple and lightweight, and you own your data, pick your model, and control the prompts.
Pawmc asks for a little effort from a user, but the result is predictability of compounding context. Every time you start a chat, you must select a "category" and "topic" (existing or new) and that's exactly where the context will compound.
Over time, when you gather context about your fields of interest, you will have multiple context options to use as a background for your new chats. (e.g. "personal", "project-x", "hobby-y", "philosophy")
It's a great relief to use an LLM that doesn't have search-access and a system prompt of 200–1500 (!) lines. Pawmc's system prompt is one short sentence, focused on getting the point across.
You deploy the software, you control the database. The database includes all your conversations and summaries. You can redact your summaries, you can redact your prompts, you can change the model.
In an ideal world, you would also control the LLM deployment, but as of mid-2026 most of us can't host a cutting-edge LLM on a private machine. It's the main tradeoff - prompts are still sent to the companies that host LLMs.
Deploying and hosting Pawmc on Cloudflare is way under their free tier limits, and you even get some free daily tokens with Workers AI.
Click "Use this template" on the GitHub repo to create your own repository.
Go to dash.cloudflare.com/sign-up and create a free account. No credit card required.
In your new GitHub repository:
| Name | Value |
|---|---|
CLOUDFLARE_API_TOKEN | The API token you created in step 3 |
API_KEY | A secret password of your choice (you'll enter this in the web app to log in) |
Once deployed, you can put together a link to your worker, based on the email you used to register on Cloudflare, like in the example below.
replaceme@gmail.com =>
https://pawmc.replaceme.workers.dev
Open that URL, enter your API_KEY and start chatting.
By default, Pawmc uses Cloudflare Workers AI (free, no extra setup). However, Workers AI can be unreliable and is only ok for testing out the project. If you are planning to use it extensively, I recommend switching to OpenRouter, which is also supported.
Note that OpenRouter is pay-per-token — you'll need to add credit to your OpenRouter account (supports crypto as well). However, it's usually a symbolical spending due to project's simplicity and the budget-friendly model default.
To switch:
OPENROUTER_API_KEY with your key.wrangler.jsonc, set AI_PROVIDER to "openrouter" and, if you want a different model, update AI_MODEL_OPENROUTER to any OpenRouter model slug.To switch back, set AI_PROVIDER back to "workers-ai".
When the template repo is updated, go to your GitHub repo, click Sync fork → Update branch, and the action will redeploy automatically.
| Resource | Limit |
|---|---|
| Workers Requests | 100,000/day |
| Workers AI | 10,000 neurons/day |
| SQLite Row Reads | 5 million/day |
| SQLite Row Writes | 100,000/day |
| Cron Triggers | 5/account |
HTML
67.9%
JavaScript
32.1%
A personal LLM assistant that runs on Cloudflare Workers and maintains a user-guided compounding knowledge base across conversations.
When starting a new conversation, choose which historical context you want it to have by choosing a category and topic. Additional context from new chats is compounded daily or on request.
It's simple and lightweight, and you own your data, pick your model, and control the prompts.
Pawmc asks for a little effort from a user, but the result is predictability of compounding context. Every time you start a chat, you must select a "category" and "topic" (existing or new) and that's exactly where the context will compound.
Over time, when you gather context about your fields of interest, you will have multiple context options to use as a background for your new chats. (e.g. "personal", "project-x", "hobby-y", "philosophy")
It's a great relief to use an LLM that doesn't have search-access and a system prompt of 200–1500 (!) lines. Pawmc's system prompt is one short sentence, focused on getting the point across.
You deploy the software, you control the database. The database includes all your conversations and summaries. You can redact your summaries, you can redact your prompts, you can change the model.
In an ideal world, you would also control the LLM deployment, but as of mid-2026 most of us can't host a cutting-edge LLM on a private machine. It's the main tradeoff - prompts are still sent to the companies that host LLMs.
Deploying and hosting Pawmc on Cloudflare is way under their free tier limits, and you even get some free daily tokens with Workers AI.
Click "Use this template" on the GitHub repo to create your own repository.
Go to dash.cloudflare.com/sign-up and create a free account. No credit card required.
In your new GitHub repository:
| Name | Value |
|---|---|
CLOUDFLARE_API_TOKEN | The API token you created in step 3 |
API_KEY | A secret password of your choice (you'll enter this in the web app to log in) |
Once deployed, you can put together a link to your worker, based on the email you used to register on Cloudflare, like in the example below.
replaceme@gmail.com =>
https://pawmc.replaceme.workers.dev
Open that URL, enter your API_KEY and start chatting.
By default, Pawmc uses Cloudflare Workers AI (free, no extra setup). However, Workers AI can be unreliable and is only ok for testing out the project. If you are planning to use it extensively, I recommend switching to OpenRouter, which is also supported.
Note that OpenRouter is pay-per-token — you'll need to add credit to your OpenRouter account (supports crypto as well). However, it's usually a symbolical spending due to project's simplicity and the budget-friendly model default.
To switch:
OPENROUTER_API_KEY with your key.wrangler.jsonc, set AI_PROVIDER to "openrouter" and, if you want a different model, update AI_MODEL_OPENROUTER to any OpenRouter model slug.To switch back, set AI_PROVIDER back to "workers-ai".
When the template repo is updated, go to your GitHub repo, click Sync fork → Update branch, and the action will redeploy automatically.
| Resource | Limit |
|---|---|
| Workers Requests | 100,000/day |
| Workers AI | 10,000 neurons/day |
| SQLite Row Reads | 5 million/day |
| SQLite Row Writes | 100,000/day |
| Cron Triggers | 5/account |
HTML
67.9%
JavaScript
32.1%