Skip to content

Instantly share code, notes, and snippets.

LLM Wiki

A pattern for building personal knowledge bases using LLMs.

This is an idea file, it is designed to be copy pasted to your own LLM Agent (e.g. OpenAI Codex, Claude Code, OpenCode / Pi, or etc.). Its goal is to communicate the high level idea, but your agent will build out the specifics in collaboration with you.

The core idea

Most people's experience with LLMs and documents looks like RAG: you upload a collection of files, the LLM retrieves relevant chunks at query time, and generates an answer. This works, but the LLM is rediscovering knowledge from scratch on every question. There's no accumulation. Ask a subtle question that requires synthesizing five documents, and the LLM has to find and piece together the relevant fragments every time. Nothing is built up. NotebookLM, ChatGPT file uploads, and most RAG systems work this way.

@raspberrypisig
raspberrypisig / strings.zig
Created October 9, 2025 02:04 — forked from AndreyArthur/strings.zig
Zig strings beginner cheat-sheet.
// When I was starting to learn Zig, strings were such a pain in the ass, so I
// made this little guide for you to understand better what each type of string
// does and why some of them seems to be "wrong".
//
// I will assume that you already know how pointers, const, var, comptime and
// the stack works. You don't need to be an expert, but I will not waste time
// detailing these concepts.
//
// Sorry for the English mistakes, I'm far from being a fluent English speaker,
// but what counts is the information.
<!DOCTYPE html>
<html>
<head>
<title>Kitchen Sink Example</title>
</head>
<body lang="en">
<p>This paragraph WILL NOT be styled by CSS or changed by javascript.</p>
<p id="secondpara">This paragraph will be styled by CSS using its <b>id</b>attribute using CSS selector.</p>
<p class="thirdpara">This paragraph will be styled by CSS using its <b>class</b>attribute using CSS selector.</p>
<p id="willchange">This paragraph will be changed by javascript</p>
@raspberrypisig
raspberrypisig / tagged_unions.zig
Created April 19, 2025 23:57 — forked from SpexGuy/tagged_unions.zig
Zig: Using tagged unions to make a simple json formatter
const JsonString = struct {
value: []const u8,
};
const JsonNumber = struct {
value: f64,
};
const JsonObject = struct {
const Property = struct {
name: []const u8,
value: JsonValue,

Thought I should post my guide on how to do this, as I've struggled with this for quite some time now. I wanted something to bypass the NAT/router as I did not have the option of port-forwarding. I will also be moving quite some in the upcoming year, so dynamic IP was almost a given. And obviously I wanted it to be cheap. This does it all.

This is free, no port-forwarding required and no static IP required. Wildcard domain and SSL certificate supported. It works with Cloudflare tunnels, Cloudflare DNS, Nginx Proxy Manager and obviously TrueNAS SCALE.

I am not a professional, if you see a flaw in this design, please let me know!

Requirements:

  • Domain name at Cloudflare
@raspberrypisig
raspberrypisig / login.tsx
Created June 27, 2024 00:54 — forked from jdthorpe/login.tsx
expo-auth-session example
/* An example app that uses expo-auth-session to connect to Azure AD (or hopefully most providers)
Features:
- secure cache with refresh on load
- securely stored refresh token using expo-secure-store
- uses zustand for global access to the token / logout
Based on [this gist](https://gist.github.com/thedewpoint/181281f8cbec10378ecd4bb65c0ae131)
*/
@raspberrypisig
raspberrypisig / my-custom-card.js
Created January 14, 2024 01:46 — forked from thomasloven/my-custom-card.js
Simplest custom card
// Simplest possible custom card
// Does nothing. Doesn't look like anything
class MyCustomCard extends HTMLElement {
setConfig(config) {
// The config object contains the configuration specified by the user in ui-lovelace.yaml
// for your card.
// It will minimally contain:
// config.type = "custom:my-custom-card"
@raspberrypisig
raspberrypisig / winstall.ps1
Created January 5, 2024 23:43 — forked from mchahed99/winstall.ps1
My winget powershell script to download my apps using winget (Windows Package Manager for Windows 10)
winget install --id=Google.Chrome -e ; winget install --id=Mozilla.Firefox -e ; winget install --id=Discord.Discord -e ; winget install --id=WhatsApp.WhatsApp -e ; winget install --id=OpenJS.Nodejs -e ; winget install --id=Microsoft.WindowsTerminal -e ; winget install --id=Amazon.AWSCLI -e ; winget install --id=CPUID.CPU-Z -e ; winget install --id=Cryptomator.Cryptomator -e ; winget install --id=hiyohiyo.CrystalDiskInfo -e ; winget install --id=Git.Git -e ; winget install --id=plex.plexmediaplayer -e ; winget install --id=Microsoft.PowerToys -e ; winget install --id=SlackTechnologies.Slack -e ; winget install --id=Microsoft.Skype -e ; winget install --id=Valve.Steam -e ; winget install --id=Spotify.Spotify -e ; winget install --id=Microsoft.Teams -e ; winget install --id=Ubisoft.Uplay -e ; winget install --id=Microsoft.VisualStudioCode -e ; winget install --id=RARLab.WinRAR -e ; winget install --id=WiresharkFoundation.Wireshark -e
@raspberrypisig
raspberrypisig / Install-ChocoAndScoop.ps1
Created January 5, 2024 23:34 — forked from Jeff-Lewis/Install-ChocoAndScoop.ps1
Install Chocolatey and Scoop package managers for Windows + basic set of utilities and software
Function Install-Scoop {
New-ItemProperty -path "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" `
-propertyType ExpandString `
-name "SCOOP_GLOBAL" `
-value "${ENV:PROGRAMDATA}\scoop"
Invoke-WebRequest 'https://get.scoop.sh' | Invoke-Expression
'scoop install Git-with-OpenSSH Sudo Which --global' | Set-Content -path temp_script.ps1