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.

You are ChatGPT, a large language model based on the GPT-5 model and trained by OpenAI.
Knowledge cutoff: 2024-06
Current date: 2025-08-08
Image input capabilities: Enabled
Personality: v2
Do not reproduce song lyrics or any other copyrighted material, even if asked.
You're an insightful, encouraging assistant who combines meticulous clarity with genuine enthusiasm and gentle humor.
Supportive thoroughness: Patiently explain complex topics clearly and comprehensively.
Lighthearted interactions: Maintain friendly tone with subtle humor and warmth.
@rwohleb
rwohleb / custom_util.post_update.php
Created November 20, 2019 04:11
Drupal 8: Convert text field to paragraph
<?php
use Drupal\Core\Utility\UpdateException;
use Drupal\paragraphs\Entity\Paragraph;
/**
* Convert news,blog,event body field to paragraphs.
*/
function custom_util_post_update_convert_newsblogevent_body(&$sandbox) {
@bogdan-mainwp
bogdan-mainwp / add-sites.php
Created May 30, 2018 12:28
Custom filter for adding new sites to MainWP Dashboard
<?php
// Available parameters: url, name, wpadmin, unique_id, groupids, ssl_verify, ssl_version, http_user, http_pass
$params = array(
'url' => 'demosite.com',
'name' => 'Site Friendly Name',
'wpadmin' => 'adminusername',
'unique_id' => 'unique_id'
);
@ScottDeLuzio
ScottDeLuzio / mainwp.php
Created January 25, 2017 22:55
mainwp_addsite and mainwp_editsite
// for add child site
$params = array(
'url' => 'http://childsite.com', // child site url
'name' => 'my child site', // set name
'wpadmin' => 'admin-user-name',
'unique_id' => '', // set value if needed
'groupids' => array( ... ), // array of group ids
'ssl_verify' => 0, // or 1, 2
'ssl_version' => 'auto',
'http_user' => '', // set value if needed
@velizarn
velizarn / sendgrid.bash
Last active April 22, 2025 15:40
Send email from bash script by using SendGrid API
#!/bin/bash
SENDGRID_API_KEY=""
EMAIL_TO=""
FROM_EMAIL=""
FROM_NAME=""
SUBJECT=""
bodyHTML="<p>Email body goes here</p>"
@leahtard
leahtard / node.twig.html
Last active June 9, 2022 18:32
Get file url in node for Drupal 8 twig template
{# Get URL of single file field #}
{{ node.field_file.entity.uri.value }}
{# Get URL of multi file field #}
{{ node.field_file['#items'].entity.uri.value }}
{# Trun into link #}
{{ file_url(node.field_file.entity.uri.value) }}
{# Check if there is at least one value #}
@raphaellarrinaga
raphaellarrinaga / drupal_8_twig_cheatsheet.md
Last active February 23, 2025 02:49
[Drupal 8 Twig cheatsheet] #tags: drupal8, twig, cheatsheet

Drupal 8 Twig cheatsheet

Please note I created that sheet as a personal side note/draft and not everything is fully tested. There could be errors or better things to do. So if you spot something wrong or something that can be improved, feel free to comment below and I will do the changes.

Getting Drupal 8 field values in Twig

Image path: {{ file_url(content.field_name['#items'].entity.uri.value) }}

@guiliredu
guiliredu / facebook-page-invite.js
Last active March 16, 2026 02:40
Facebook - Script to auto invite people who liked a page post do like the page
var buttons;
buttons = document.getElementsByClassName('_42ft');
for (var i = 0; i < buttons.length; i++) {
if(buttons[i].getAttribute('ajaxify') != null){
if(buttons[i].getAttribute('ajaxify').indexOf('invite') != -1){
buttons[i].click();
}
}
}
@artbristol
artbristol / monitor.sh
Last active March 24, 2023 04:54
inotify watch a directory with timestamps
inotifywait --monitor --timefmt '%F %T' --format '%T %w%f %e' --recursive $1