Skip to content

Instantly share code, notes, and snippets.

View ankushKun's full-sized avatar
💡
just keep building

Ankush Singh ankushKun

💡
just keep building
View GitHub Profile
@ankushKun
ankushKun / oof.sh
Last active November 3, 2026 10:23
oof: add dashboard, limits indicator and smart account switching
#!/bin/zsh
# oof: switch Claude Code accounts and keep the same conversation going.
# Run `oof help` for usage.
# https://gist.github.com/ankushKun/cd27fb07b0f06be99d4181b40309103d
#
# Tokens live in the macOS Keychain as "oof:<email>#<org>" (logins saved by
# earlier versions, under "doppel:" or "ccs:", are still read). Account details
# (no secrets) live in ~/.claude/accounts, short names and plans in
# ~/.claude/accounts/meta. The SessionStart and Stop hooks in
# ~/.claude/settings.json run `oof save -q`, so logins are saved

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.

@ankushKun
ankushKun / canvas-renderer.html
Created December 24, 2025 14:17
Turn a 2D canvas into a 3D scene using clever maths
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Engine</title>
<style>
body {
margin: 0;
@MaximilianKohler
MaximilianKohler / How to send bulk-mass email.md
Last active September 19, 2026 02:51
How to send bulk/mass email with Amazon SES. 10,000-100,000 one-time emails, or thousands per day. Set up your own web server for newsletters. Mailchimp alternative

How to send bulk/mass email

The short answer is that you need to set up your own web server (Hetzner, AWS, DigitalOcean, etc.), install email software on it (Listmonk, Mailwizz, Mautic), and use an SMTP like Amazon SES. It's not that hard. If you're on Windows, Putty and FileZilla will be your main programs to access your server. When using CSV files for your contacts, you want to use UTF-8 format.

There are some detailed guides below for Sendy and Listmonk. But even if you have/want to hire someone to set it up for you, they should be able to do so for under $60 (check Fiverr). So it's still the most affordable option.

When I searched for this I had a very hard time finding a right answer because all the results were SEO blogs advertising their newsletter services (Mailchimp, Convertkit, etc.), which is not the same thing.

My use case is that I have a

@ankushKun
ankushKun / blockchain.cpp
Last active February 1, 2024 08:54
Smol project we were forced to make during class
////////////////////////////////////
// WORTHLESS BLOCKCHAIN PROJECT //
////////////////////////////////////
// The most basic imitation/implementation of how a Blockchain would work
// Still has lots of flaws (╯°□°)╯︵ ┻━┻
#include <ctime>
#include <cstring>
#include <iostream>
@ankushKun
ankushKun / SimpDetector.py
Created April 12, 2023 15:14
Simple Simp Detector 🫠
# DEPENDENCIES:
# pip3 install opencv-python deepface
# TODO:
# Add multithreading support so face detection is done in a different thread independent form video feed and display
# Add good support for multiple face detection (that is not linear)
# ヾ(=`ω´=)ノ” ..nyaa
import cv2
@ankushKun
ankushKun / SignTransactionExample.cs
Last active May 18, 2022 07:31
Sign DeSo transaction hex in C# using Bouncy Castle cryptography library
using System;
using System.Linq;
using System.Text;
using Desonity;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.Sec;
using Org.BouncyCastle.Crypto.Digests;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Crypto.Signers;
using Org.BouncyCastle.Math;
import pdi.jwt.{Jwt, JwtAlgorithm}
import org.bitcoins.core.util.Base58
import org.bouncycastle.jce.spec.ECPublicKeySpec
import org.bouncycastle.jce.ECNamedCurveTable
import org.bouncycastle.jce.provider.BouncyCastleProvider
import java.security.{KeyFactory, PublicKey, Security}
import scala.util._
val jwtToken = "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NDg1OTcwNzIsImV4cCI6MTY0ODU5NzY3Mn0.MFEtqJzrLTnjYwH4gAOsH-0qsrQIFsKcYHyHdE1WdWHLn_xa-fGPoV3OkDLr0Rk1IcIoawSrDXNxkyZR0wGhFw"
val desoPKey = "BC1YLhwpmWkgk2iM9yTSxzgUVhYjgessSPTiVHkkK9pMrhweqJnWrvK"
@sungkhum
sungkhum / jwt.py
Last active May 24, 2022 04:26
Generate JWT from SEEDHEX for BitClout DeSo in Python
import jwt
import binascii
from ecdsa import SigningKey, SECP256k1
''' SEEDHEX should always be kept private. It has access to your complete wallet. It's kinda like
seed phrase. This is why writing methods in backend isn't a good practice until we have derived keys.
You can only automate your own account and can't have user authorisation. It is recommended to use test account while using write methods.
You can find the seedHex of your account in your browser storage. Just open https://bitclout.com/ > Dev tools > Application > Storage > Local Storage > https://identity.bitclout.com > users > Select the public key with which you want to post > seedHex'''