Chirag Chadha

chiggyOS

building

An AI-native operating system for my life. A second brain that actually remembers what I told it last week.

Personal infrastructure · 2026 -

5layers of memory
dailyjournal + transcript ingest
livedemoed in real interviews

The problem

AI models change constantly, but my context should not have to. I wanted a foundational infrastructure layer for my life that I own, where I can plug and play whatever model I use and never lose what I have already taught it.

What I built

chiggyOS runs on Obsidian and Claude Code, modeling human memory across five layers: procedural rules, semantic knowledge, episodic journals, a working-memory crash buffer, and an identity layer.

Identitypersona anchor, who I amL5Semanticstable facts, people, projectsL4Episodicdaily journals & session digestsL3Workingcross-session crash bufferL2Proceduralrules of operationL1

Raw, messy inputs (voice-to-text dumps, web clips, meeting transcripts, daily notes) are treated as immutable sources. A nightly "absorb" pass reads anything new, asks what it means and how it connects, and writes the distilled signal into a flat, link-navigated wiki. Absorbed sources are relocated, never edited, so the history stays intact and the inbox stays clean.

absorb.ts
// nightly: read new raw sources, synthesize into the wiki
for (const source of await newSourcesSince(lastRun)) {
const meaning = await interpret(source); // what does this mean?
await wiki.integrate(meaning);           // connect it to what I know
}
await memory.checkpoint();                  // crash-buffer for the next session

The whole system is operated like a CLI through a custom /wiki skill (absorb, query, cleanup, breakdown, brief, digest, resume), and versioned with a deliberate push-only git model so it never fights live cross-device sync.

The autonomous agent

An autonomous chief-of-staff agent (codename Atlas) runs the system on a remote server. It acts proactively on top of the same memory: ingesting journals, managing email, tasks, and calendar, and reporting through a Telegram interface. Three cron jobs drive it (a nightly ingest plus morning and weekend briefings), and its persona lives in a single source-of-truth file so its behavior is versioned and portable across models.

voice · clips · notesCaptureraw and messycron · nightlyAbsorbdistill meaningplain textWikilinked memoryremote agentAtlasacts + reportsbriefings land in Telegram, and what I do next becomes new context

Impact

It is the system I use every day, and it became a live conversation piece in interviews. I have installed and debugged the agent on screen mid-interview, with it pulling my own context out of the vault in real time. No static demo could replicate that.

ObsidianClaude CodeMarkdownCron