Skip to content

Instantly share code, notes, and snippets.

@adamcee
adamcee / ai-plaintext-knowledge-base.md
Created March 13, 2026 01:07
A Simple Second Brain With Claude or ChatGPT

A Simple Second Brain With Claude or ChatGPT

I have been working with Claude and Claude Code and Obsidian and like many have found it a powerful combination. The real magic is in building your own "Second Brain" in plain old text (Markdown) files. Text files are easy for Claude Code or any other command-line agentic AI tool to search, read, and write to. And Obsidian is designed to help you manage all that text with beautiful two-directional links, inspired by the zettelkasten method of academic scholarship.

In Obsidian the folder all your files are in is called a 'Vault.' I've been using Claude to research, brainstorm, and design a product idea. I have it research for me online, write reports, add them to the vault, and then it and I chat and I direct it to create followup action items, reminders, implementation plans, etc.

Basically, I'm

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.

@Tehnix
Tehnix / Linear Widget.js
Last active August 24, 2026 22:21
Linear iOS/macOS widget using Scriptable
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: teal; icon-glyph: magic;
const LINEAR_API_KEY = "lin_api_....";
const WIDGET_SIZE = config.widgetFamily; // "small" | "medium" | "large"
const VIEW_ID = "....-....-....-...-....."; // Your Linear view ID.
const TEAM_ID = "LTI"; // Your Linear team ID.
const DEFAULT_ASSIGNEE = "displayName"; // Your Linear display name.
const DEFAULT_PROJECT = "....-....-....-...-....."; // The default project to create issues in.
const DEFAULT_STATUS = "Backlog"; // The default status to create issues with.
@tbekaert
tbekaert / Linear inbox widget.js
Last active August 24, 2026 22:21
[Scriptable] Linear inbox widget
const LINEAR_API_KEY = "YOUR_API_KEY_HERE";
const WIDGET_SIZE = "medium"; // "small" | "medium" | "large"
let widget = await createWidget();
if (config.runsInWidget) {
Script.setWidget(widget);
} else {
switch (WIDGET_SIZE) {
case "large": {
import base64
import urllib.parse
SKELETON_PAYLOAD = """<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml SYSTEM 'x" ><!--'>
FAKE_ASSERTION
<![CDATA[-->
REAL_ASSERTION
<!--]]>--></saml2p:Response>
"""
@HelgeSverre
HelgeSverre / coop-norway-api.openapi.json
Last active August 24, 2026 21:57
Norwegian Grocery Store APIs — Reverse-engineered API documentation for Rema 1000, Coop Norway, and Trumf (extracted from Android APKs)
{
"openapi": "3.1.0",
"info": {
"title": "Coop Norway Medlem API",
"version": "4.17.3",
"description": "Reverse-engineered API specification for the Coop Norway \"Coop medlem\" Android app (no.coop.members v4.17.3). Extracted via static analysis of the compiled Dart binary (libapp.so) from the Flutter APK.\n\nThis API powers Norway's Coop loyalty program including purchase history, digital receipts, coupons, Coopay mobile payment, shopping lists, and Shop Express.\n\n**Authentication:** OpenID Connect via Auth0 at https://login.coop.no/\n**Strong Customer Auth (Coopay):** Aera SDK at https://api.aerahost.com/\n\n⚠️ Unofficial, reverse-engineered spec. Use responsibly for personal data access only.",
"contact": { "name": "Helge Sverre", "url": "https://helgesver.re" },
"license": { "name": "MIT" }
},
"servers": [
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="Scripts/jquery-1.9.1.min.js"></script>
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<script src="Scripts/isRockFx.js"></script>
<script>
$(function () {
@jboner
jboner / latency.txt
Last active August 24, 2026 22:13
Latency Numbers Every Programmer Should Know
Latency Comparison Numbers (~2012)
----------------------------------
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
@pilalouis
pilalouis / giftCardGenerator.py
Created July 21, 2020 18:47
A gift card generator. The script generates the specified number of gift card numbers for a particular company and stores them in a text file.
import random
from random import randint
import time
gentype = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
print("Hello To Multipe Gift Card Generator")
total = input("How Many Would You Like To Generate? ")
#Number To Generate
number = int(total)
file = (total + " Generated By Multipe Gift Card Generator.txt")
file2 = 'GiftCardsCodes.txt'
@jhol-byte
jhol-byte / Ikea_bilresa_scroll_wheel.yaml
Last active August 24, 2026 20:04
Home Assistent Blueprint "Ikea_bilresa_scroll_wheel"
blueprint:
name: Ikea_bilresa_scroll_wheel
description: |
Blueprint for Ikea Bilresa Matter (button and scroll wheel for 3 different channels)
Version: 2026-04-06
Info: https://community.home-assistant.io/t/ikea-bilresa-scroll-wheel-blueprint-matter/965365
domain: automation
# input selectors
input: