| name | para-organizer |
|---|---|
| version | 2.0 |
| description | Implement the PARA Method (Projects, Areas, Resources, Archives) on a user's local file system. Use this skill whenever the user wants to: organize their files or folders using PARA, set up a PARA system from scratch, classify existing files/folders into Projects/Areas/Resources/Archives, do a PARA audit or cleanup of their digital environment, identify their current projects and areas of responsibility, or reorganize a messy Documents folder. Also trigger when the user mentions 'PARA', 'Second Brain file organization', 'organize my files by actionability', or asks which folders should be projects vs areas vs resources. This skill scans real files, presents a complete reorganization plan for the user to approve, then executes it. |
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.
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.
[Submit product or tutorial] or make it thru PR.
- OpenVPN — full-featured open source VPN solution. (Digital Ocean tutorial)
- dockovpn.io — stateless OpenVPN dockerized server which doesn't require persistent storage.
- WireGuard — faster, simpler, leaner, and more useful than IPsec. It intends to be considerably more performant than OpenVPN. (Digital Ocean tutorial)
- Algo VPN — set of Ansible scripts that simplify the setup of a personal Wireguard and IPsec VPN.
- Location - The location of the application. Usually just a URL, but the location can contain multiple pieces of information that can be used by an app
- pathname - The "file/directory" portion of the URL, like
invoices/123 - search - The stuff after
?in a URL like/assignments?showGrades=1. - query - A parsed version of search, usually an object but not a standard browser feature.
- hash - The
#portion of the URL. This is not available to servers inrequest.urlso its client only. By default it means which part of the page the user should be scrolled to, but developers use it for various things. - state - Object associated with a location. Think of it like a hidden URL query. It's state you want to keep with a specific location, but you don't want it to be visible in the URL.
- pathname - The "file/directory" portion of the URL, like
A curated list of arrrrrrrrr!
| Rank | Type | Prefix/Suffix | Length | |
|---|---|---|---|---|
| 1 | Prefix | my+ | 2 | |
| 2 | Suffix | +online | 6 | |
| 3 | Prefix | the+ | 3 | |
| 4 | Suffix | +web | 3 | |
| 5 | Suffix | +media | 5 | |
| 6 | Prefix | web+ | 3 | |
| 7 | Suffix | +world | 5 | |
| 8 | Suffix | +net | 3 | |
| 9 | Prefix | go+ | 2 |
Selfhosting is the process of locally hosting and managing applications instead of renting from SaaS providers.
This is a list of Free Software network services and web applications which can be hosted locally. Non-Free software is listed on the Non-Free page.
See Contributing.
| excalidraw-plugin | parsed |
|---|---|
| excalidraw-onload-script | setTimeout(async()=>{let mmb=window.MindMapBuilderAPI;if(!mmb){await sleep(500);const cmd=Object.keys(app.commands.commands).find((k)=>/.*Mindmap Builder$/.test(k));if(!cmd)return;if(!app.commands.commands[cmd].checkCallback(false))return;await sleep(500);mmb=window.MindMapBuilderAPI;if(!mmb)return;}await mmb.setInputFieldDockStatus({isDocked:false});mmb.performAction(mmb.Actions.FOCUS);},100) |
<%* /*
const td=moment(tp.file.title.substr(0,10)); //my DNP filename format is "YYYY-MM-DD dddd"
tR += "Yesterday:: [[Daily Notes/" +
td.add(-1,'d').format("YYYY-MM-DD dddd") +
| .callout[data-callout="todo"] { | |
| --callout-color: 230, 20, 10; | |
| --callout-icon: lucide-lightbulb; | |
| } | |
| .callout[data-callout="interesting"] { | |
| --callout-color: 245, 209, 10; | |
| --callout-icon: lucide-lightbulb; | |
| } |
| ea = ExcalidrawAutomate; | |
| async function run() { | |
| const files = app.vault.getMarkdownFiles().filter(f=>ea.isExcalidrawFile(f) && f.name.match(/^(?:icon|stickfigure|logo) - /i)); | |
| let workingLeaf = app.workspace.getLeaf(true); | |
| //let i = 0; //uncomment this and if statment later for limited debugging. | |
| for (excalidrawFile of files) { | |
| //if(i++>5) continue; | |
| await workingLeaf.openFile(excalidrawFile); | |
| await sleep(200); |
