npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-ai-operating-system

v0.1.2

Published

Create an AI Operating System quickstart for work or personal knowledge operations.

Readme

AI Operating System Quickstart

A local-first Markdown workspace that gives AI tools a durable place to read, write, search, and hand off context for work or personal planning.

Most AI sessions fail for a simple reason: the model is asked to reason from scattered files, stale chat history, and partial memory. This quickstart gives the context a home. Raw material stays preserved, reusable knowledge gets written into a wiki, decisions have a clear place to land, and search can be rebuilt locally at any time.

The public package is safe by default. It ships folder guidance, placeholder files, and reusable templates, not real source files, private examples, local paths, company details, or personal history.

Why This Exists

AI tools are useful at synthesis, drafting, review, and planning. They are weaker when every session starts from scratch.

An AI Operating System fixes that by making context durable:

  • Capture source material once.
  • Summarize it into reusable reference pages.
  • Separate facts, decisions, concepts, plans, and outputs.
  • Let AI tools read the same operating rules every time.
  • Rebuild local search from Markdown instead of relying on opaque memory.
  • Keep private work and personal context out of public templates.

The result is not a chatbot wrapper. It is a file-based operating layer for repeated AI-assisted work.

How The System Works

The workspace has five jobs:

  • raw/ keeps original source material available for verification.
  • wiki/ holds the written knowledge future sessions should use.
  • brain/ defines the rules and writing style for humans and AI tools.
  • _system/ keeps the operating model, taxonomy, index, and change log.
  • tools/ and checks/ provide local search and privacy-oriented validation.
flowchart LR
    CAPTURE["Capture<br/>raw/ingest or domain raw folders"] --> SUMMARIZE["Summarize<br/>wiki/sources reference pages"]
    SUMMARIZE --> CONCEPTS["Distill<br/>wiki/concepts"]
    SUMMARIZE --> OPERATE["Operate<br/>wiki/work or wiki/life"]
    CONCEPTS --> OPERATE
    OPERATE --> OUTPUTS["Save useful outputs<br/>outputs/"]
    OPERATE --> INDEX["Rebuild search<br/>_system/index.md + .system-cache/wiki.db"]
    INDEX --> SEARCH["Query locally<br/>llmwiki search"]
    SEARCH --> AGENT["Start next AI session<br/>with filed context"]
    AGENT --> SUMMARIZE
    AGENT --> OPERATE

The important pattern is capture -> summarize -> distill -> operate -> search -> reuse. Raw files are preserved, but the wiki becomes the normal reading surface for future work.

Start A Workspace

Create a personal workspace:

npx create-ai-operating-system my-aos --personal
cd my-aos

Or create a work workspace:

npx create-ai-operating-system work-aos --work
cd work-aos

Read the rules, then build the index:

sed -n '1,120p' AGENTS.md
python3 tools/scripts/wiki_index.py rebuild
./tools/scripts/llmwiki status

The Core Loop

  1. Add real source material only in a private workspace.

  2. Put new material in raw/ingest/ until the right domain is clear.

  3. Write a source reference page in wiki/sources/.

  4. Move durable ideas into wiki/concepts/.

  5. Record active work in wiki/work/ or personal execution in wiki/life/.

  6. Save useful drafts, reports, and checks in outputs/.

  7. Rebuild search with python3 tools/scripts/wiki_index.py rebuild.

  8. Query before starting from memory:

    ./tools/scripts/llmwiki search "decision log"
  9. Run the privacy gate before sharing:

    ./checks/offline_check.sh

See GUIDE.md for a longer walkthrough.

Reference Pages

Reference pages, or RPs, are the pages you want a future human or AI session to read before acting. They are short enough to scan, structured enough to search, and specific enough to avoid reopening raw files for routine questions.

This template uses three main kinds:

| RP type | Location | Purpose | |---|---|---| | Source RP | wiki/sources/ | Summarizes one source and links back to raw_ref | | Concept RP | wiki/concepts/ | Captures reusable ideas, rules, frameworks, and recurring patterns | | Operating RP | wiki/work/ or wiki/life/ | Records projects, decisions, meetings, goals, reviews, and plans |

A good source RP answers:

  • What the source says.
  • Why it matters.
  • Which dates, numbers, decisions, or constraints matter.
  • What is fact, inference, or recommendation.
  • What should be checked again later.
  • Where the raw source lives.

RPs are the handoff surface. Chat answers can be useful, but they are easy to lose. RPs turn useful answers into filed context.

Why Local-First

Local-first means the primary workspace lives on disk as normal files. Markdown is the source of truth. SQLite search indexes and any future vector indexes are derived artifacts that can be deleted and rebuilt.

That choice matters for four reasons:

  • Privacy. Real work and personal context can stay in a private clone, local folder, or encrypted drive.
  • Inspection. Every important page is readable without a special app, account, or hosted service.
  • Portability. Markdown works in a terminal, editor, notes app, Git repo, or file sync system.
  • Control. You decide what gets committed, synced, shared, indexed, or sent to an AI model.

Local-first does not mean anti-cloud. You can still use hosted AI tools, file sync, or GitHub for public templates. The key rule is that the canonical knowledge stays in files you control.

Search And Embeddings

The shipped search layer is local text search, not embeddings.

tools/scripts/wiki_index.py reads Markdown files, writes _system/index.md, and stores a rebuildable SQLite database at .system-cache/wiki.db. When SQLite FTS5 is available, llmwiki search uses full-text search. If FTS5 is not available, it falls back to a simpler text match.

No LLM or embedding model is required to use the package. The template does not call a cloud model, create embeddings, or send your files to an external service.

LLMs are useful in the workflow, but they are helpers:

  • Summarize raw material into source RPs.
  • Extract decisions, risks, and open questions.
  • Rewrite a messy note into a clear wiki page.
  • Search with llmwiki, then reason over the returned pages.
  • Review the workspace before sharing.

Embeddings can be added later if you want semantic search. Keep them as a private extension:

  • Store vectors under a derived folder such as .vector/ or .system-cache/.
  • Treat vectors as rebuildable, not canonical.
  • Use a local embedding model when privacy matters.
  • Use an approved hosted embedding service only when your data policy allows it.

The tradeoff is simple: SQLite text search is transparent, cheap, and easy to rebuild. Embeddings can find looser semantic matches, but they add model choice, storage, refresh, privacy, and debugging decisions.

Folder Rationale

The file structure is opinionated because AI tools need predictable places to read and write.

| Path | Why it exists | Tradeoff | |---|---|---| | AGENTS.md | Gives AI tools the read order and workspace rules | Must stay current as the system changes | | brain/rules.md | Defines lifecycle, privacy, and page rules | Too many rules can slow capture; keep them practical | | brain/voice.md | Keeps generated writing consistent | Style guidance should not override factual clarity | | raw/ | Preserves original source material | Raw files can contain sensitive data; keep real raw content private | | wiki/sources/ | Turns sources into reusable RPs | Summaries need provenance and should not copy private raw content into public repos | | wiki/concepts/ | Holds ideas that survive beyond one source | Concepts can drift if they are not linked back to evidence | | wiki/work/ | Stores projects, meetings, decisions, and operating records | Work context usually has higher sharing risk | | wiki/life/ | Stores goals, routines, learning plans, decisions, and reviews | Personal context needs stricter privacy habits | | _system/ | Holds the operating model, taxonomy, index, and log | Generated index files should be rebuilt after material edits | | outputs/ | Saves drafts, reports, checks, and useful AI answers | Outputs are not canonical until promoted into wiki/ | | tools/ | Provides local scripts for indexing and querying | Scripts stay small; advanced search is an extension | | checks/ | Runs smoke and privacy-oriented checks | Checks are guardrails, not a full privacy audit |

Templates

| Template | Best for | Core pages | |---|---|---| | work | Projects, meetings, decisions, research, stakeholder context, operating reviews | Project page, decision log, meeting synthesis, project plan | | personal | Goals, learning, routines, personal decisions, reviews, private research | Personal operating model, weekly review, learning plan, decision log |

The split matters. Work and personal systems have different risk profiles, review habits, and page types. Keeping them separate makes it easier to share one without exposing the other.

Both templates use mock descriptions and placeholders. They do not ship personal content, company names, project history, local install paths, raw PDFs, or private source summaries.

Recommended Tools

The workspace is plain files, so no single app is required. These tools fit the model well:

  • Obsidian for browsing Markdown, backlinks, graph views, and wiki-style navigation.
  • A code editor for bulk edits, file search, and structured refactors.
  • A terminal for llmwiki, rg, Git, smoke checks, and indexing.
  • Git for versioning the template or a private workspace.
  • An AI coding agent for summarizing sources, updating RPs, checking privacy risk, and carrying context across tasks.
  • Optional local model tooling if you later add private embeddings or local summarization.

Use the simplest setup first: Markdown files, the included SQLite search, and one editor you already trust.

Design Decisions

  • Markdown is canonical. Search databases, generated indexes, and vectors are rebuildable.
  • Raw files stay separate. Original material remains available for verification, but the wiki is the normal operating layer.
  • The public template is generic. Real content belongs in a private clone.
  • Work and personal templates stay separate. They need different privacy boundaries and review habits.
  • Search starts simple. Text search is easier to inspect and debug than a hidden semantic index.
  • AI tools get explicit rules. AGENTS.md reduces drift by telling tools what to read first and where to write.
  • Outputs are a staging area. A useful answer becomes durable only when promoted into wiki/.

Privacy

The public package is intentionally generic.

Do not publish:

  • Employer, client, customer, partner, personnel, project, or deal details.
  • Local machine paths.
  • Private raw documents.
  • Source summaries copied from your private workspace.
  • Emails, phone numbers, addresses, identity documents, financial account data, health details, API keys, tokens, or screenshots.

Use real content only in a private clone. Run ./checks/offline_check.sh before sharing, and treat the result as a guardrail rather than a guarantee.

Credits

Built with inspiration from:

Local Development

npm test
npm run smoke
npm pack --dry-run
node bin/create-ai-operating-system.js .tmp/demo --work --force

License

Apache-2.0