🐦 Twitter Post Details

Viewing enriched Twitter post

@omarsar0

I just built my own wiki generator plugin for my agents. My agents can now generate wikis for anything I ask. One of my favorite wikis is called PaperWiki. This is a great example of what @karpathy describes. It uses obsidian vaults to organize papers, retrieve LLM-generated summaries, diagrams, and other advanced views for paper exploration. When Obsidian UI is not enough, I use my own artifact generator inside my agent orchestrator (see clip for example). This allows my agents to build any kind of view or exploration feature that I need. The papers are all curated with automations and several rules/patterns I have manually built over the years. On the surface, this looks basic. But behind the scenes, there are advanced search capabilities, connections, metadata, derived data, and other interesting bits of information that are extremely useful for my research agents. This is mostly built for agents. The artifact preview is just a high-level way to validate and quickly assess the quality of the wiki, suggest improvements, and it's also great for research. I use @tobi's qmd for all search capabilities. Everything is markdown. The summaries and even the diagrams. The wiki updates on its own based on several automations I have optimized over the past couple of weeks. The wiki grows and self-improves based on several requirements important for my research use cases. This is as personalized as it gets. There is nothing like it out there. And I use my research expertise to continue improving it over time. This is a vanilla wiki. There are so many things I want to build on top of this. Different aggregations, views, artifacts, etc. All to help automate more of my research work and accelerate productivity. I think the biggest leverage here is how powerful this could be for discovery and experimentation. One of my goals is to use it to find deeper connections and insights that would otherwise elude the top human researchers and use those to generate interesting new hypotheses and research experiments. That way, my agents can use autoresearch to explore research ideas at the frontier. Stay tuned for more.

📊 Media Metadata

{
  "media": [
    {
      "url": "https://crmoxkoizveukayfjuyo.supabase.co/storage/v1/object/public/media/posts/2042286186920550498/media_0.mp4",
      "media_url": "https://crmoxkoizveukayfjuyo.supabase.co/storage/v1/object/public/media/posts/2042286186920550498/media_0.mp4",
      "type": "video",
      "filename": "media_0.mp4"
    }
  ],
  "processed_at": "2026-04-09T17:01:39.154801",
  "pipeline_version": "2.0"
}

🔧 Raw API Response

{
  "type": "tweet",
  "id": "2042286186920550498",
  "url": "https://x.com/omarsar0/status/2042286186920550498",
  "twitterUrl": "https://twitter.com/omarsar0/status/2042286186920550498",
  "text": "I just built my own wiki generator plugin for my agents.\n\nMy agents can now generate wikis for anything I ask.\n\nOne of my favorite wikis is called PaperWiki.\n\nThis is a great example of what @karpathy describes.\n\nIt uses obsidian vaults to organize papers, retrieve LLM-generated summaries, diagrams, and other advanced views for paper exploration.\n\nWhen Obsidian UI is not enough, I use my own artifact generator inside my agent orchestrator (see clip for example). This allows my agents to build any kind of view or exploration feature that I need.\n\nThe papers are all curated with automations and several rules/patterns I have manually built over the years.\n\nOn the surface, this looks basic. But behind the scenes, there are advanced search capabilities, connections, metadata, derived data, and other interesting bits of information that are extremely useful for my research agents. This is mostly built for agents. The artifact preview is just a high-level way to validate and quickly assess the quality of the wiki, suggest improvements, and it's also great for research. \n\nI use @tobi's qmd for all search capabilities. \n\nEverything is markdown. The summaries and even the diagrams. \n\nThe wiki updates on its own based on several automations I have optimized over the past couple of weeks. The wiki grows and self-improves based on several requirements important for my research use cases. \n\nThis is as personalized as it gets. There is nothing like it out there. And I use my research expertise to continue improving it over time. \n\nThis is a vanilla wiki. There are so many things I want to build on top of this. Different aggregations, views, artifacts, etc. All to help automate more of my research work and accelerate productivity. \n\nI think the biggest leverage here is how powerful this could be for discovery and experimentation. One of my goals is to use it to find deeper connections and insights that would otherwise elude the top human researchers and use those to generate interesting new hypotheses and research experiments. That way, my agents can use autoresearch to explore research ideas at the frontier.\n\nStay tuned for more.",
  "source": "Twitter for iPhone",
  "retweetCount": 1,
  "replyCount": 0,
  "likeCount": 3,
  "quoteCount": 0,
  "viewCount": 218,
  "createdAt": "Thu Apr 09 16:59:05 +0000 2026",
  "lang": "en",
  "bookmarkCount": 4,
  "isReply": false,
  "inReplyToId": null,
  "conversationId": "2042286186920550498",
  "displayTextRange": [
    0,
    279
  ],
  "inReplyToUserId": null,
  "inReplyToUsername": null,
  "author": {
    "type": "user",
    "userName": "omarsar0",
    "url": "https://x.com/omarsar0",
    "twitterUrl": "https://twitter.com/omarsar0",
    "id": "3448284313",
    "name": "elvis",
    "isVerified": false,
    "isBlueVerified": true,
    "verifiedType": null,
    "profilePicture": "https://pbs.twimg.com/profile_images/939313677647282181/vZjFWtAn_normal.jpg",
    "coverPicture": "https://pbs.twimg.com/profile_banners/3448284313/1565974901",
    "description": "Building @dair_ai • Prev: Meta AI, Elastic, PhD • New AI learning portal: https://t.co/1e8RZKs4uX",
    "location": "DAIR.AI Academy",
    "followers": 297669,
    "following": 802,
    "status": "",
    "canDm": true,
    "canMediaTag": true,
    "createdAt": "Fri Sep 04 12:59:26 +0000 2015",
    "entities": {
      "description": {
        "urls": [
          {
            "display_url": "academy.dair.ai",
            "expanded_url": "https://academy.dair.ai/",
            "indices": [
              74,
              97
            ],
            "url": "https://t.co/1e8RZKs4uX"
          }
        ]
      },
      "url": {
        "urls": [
          {
            "display_url": "dair.ai",
            "expanded_url": "https://www.dair.ai/",
            "indices": [
              0,
              23
            ],
            "url": "https://t.co/XQto5ypSIk"
          }
        ]
      }
    },
    "fastFollowersCount": 0,
    "favouritesCount": 35338,
    "hasCustomTimelines": true,
    "isTranslator": false,
    "mediaCount": 4588,
    "statusesCount": 17598,
    "withheldInCountries": [],
    "affiliatesHighlightedLabel": {},
    "possiblySensitive": false,
    "pinnedTweetIds": [
      "2041901555280945558"
    ],
    "profile_bio": {},
    "isAutomated": false,
    "automatedBy": null
  },
  "extendedEntities": {
    "media": [
      {
        "additional_media_info": {
          "monetizable": true
        },
        "allow_download_status": {
          "allow_download": true
        },
        "display_url": "pic.x.com/YLeZ0vu1ON",
        "expanded_url": "https://x.com/omarsar0/status/2042286186920550498/video/1",
        "ext_media_availability": {
          "status": "Available"
        },
        "id_str": "2042279932961665024",
        "indices": [
          280,
          303
        ],
        "media_key": "13_2042279932961665024",
        "media_results": {
          "result": {
            "media_key": "13_2042279932961665024"
          }
        },
        "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/2042279932961665024/img/0IQGD5FSNSlgCbEi.jpg",
        "original_info": {
          "focus_rects": [],
          "height": 1080,
          "width": 1892
        },
        "sizes": {
          "large": {
            "h": 1080,
            "resize": "fit",
            "w": 1892
          },
          "medium": {
            "h": 685,
            "resize": "fit",
            "w": 1200
          },
          "small": {
            "h": 388,
            "resize": "fit",
            "w": 680
          },
          "thumb": {
            "h": 150,
            "resize": "crop",
            "w": 150
          }
        },
        "type": "video",
        "url": "https://t.co/YLeZ0vu1ON",
        "video_info": {
          "aspect_ratio": [
            473,
            270
          ],
          "duration_millis": 16950,
          "variants": [
            {
              "content_type": "application/x-mpegURL",
              "url": "https://video.twimg.com/amplify_video/2042279932961665024/pl/_0yJtzroaDsDgYiW.m3u8?tag=21"
            },
            {
              "bitrate": 256000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2042279932961665024/vid/avc1/472x270/lXX6U3DnVtPONmcB.mp4?tag=21"
            },
            {
              "bitrate": 832000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2042279932961665024/vid/avc1/630x360/aQ50bzGtHdEzbua4.mp4?tag=21"
            },
            {
              "bitrate": 2176000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2042279932961665024/vid/avc1/1260x720/WuTVEmKEGVKHFPZ6.mp4?tag=21"
            },
            {
              "bitrate": 10368000,
              "content_type": "video/mp4",
              "url": "https://video.twimg.com/amplify_video/2042279932961665024/vid/avc1/1892x1080/WyMHbT1S3nJUing5.mp4?tag=21"
            }
          ]
        }
      }
    ]
  },
  "card": null,
  "place": {},
  "entities": {
    "hashtags": [],
    "symbols": [],
    "timestamps": [],
    "urls": [],
    "user_mentions": [
      {
        "id_str": "33836629",
        "indices": [
          191,
          200
        ],
        "name": "Andrej Karpathy",
        "screen_name": "karpathy"
      },
      {
        "id_str": "676573",
        "indices": [
          1087,
          1092
        ],
        "name": "tobi lutke",
        "screen_name": "tobi"
      }
    ]
  },
  "quoted_tweet": {
    "type": "tweet",
    "id": "2039805659525644595",
    "url": "https://x.com/karpathy/status/2039805659525644595",
    "twitterUrl": "https://twitter.com/karpathy/status/2039805659525644595",
    "text": "LLM Knowledge Bases\n\nSomething I'm finding very useful recently: using LLMs to build personal knowledge bases for various topics of research interest. In this way, a large fraction of my recent token throughput is going less into manipulating code, and more into manipulating knowledge (stored as markdown and images). The latest LLMs are quite good at it. So:\n\nData ingest:\nI index source documents (articles, papers, repos, datasets, images, etc.) into a raw/ directory, then I use an LLM to incrementally \"compile\" a wiki, which is just a collection of .md files in a directory structure. The wiki includes summaries of all the data in raw/, backlinks, and then it categorizes data into concepts, writes articles for them, and links them all. To convert web articles into .md files I like to use the Obsidian Web Clipper extension, and then I also use a hotkey to download all the related images to local so that my LLM can easily reference them.\n\nIDE:\nI use Obsidian as the IDE \"frontend\" where I can view the raw data, the the compiled wiki, and the derived visualizations. Important to note that the LLM writes and maintains all of the data of the wiki, I rarely touch it directly. I've played with a few Obsidian plugins to render and view data in other ways (e.g. Marp for slides).\n\nQ&A:\nWhere things get interesting is that once your wiki is big enough (e.g. mine on some recent research is ~100 articles and ~400K words), you can ask your LLM agent all kinds of complex questions against the wiki, and it will go off, research the answers, etc. I thought I had to reach for fancy RAG, but the LLM has been pretty good about auto-maintaining index files and brief summaries of all the documents and it reads all the important related data fairly easily at this ~small scale.\n\nOutput:\nInstead of getting answers in text/terminal, I like to have it render markdown files for me, or slide shows (Marp format), or matplotlib images, all of which I then view again in Obsidian. You can imagine many other visual output formats depending on the query. Often, I end up \"filing\" the outputs back into the wiki to enhance it for further queries. So my own explorations and queries always \"add up\" in the knowledge base.\n\nLinting:\nI've run some LLM \"health checks\" over the wiki to e.g. find inconsistent data, impute missing data (with web searchers), find interesting connections for new article candidates, etc., to incrementally clean up the wiki and enhance its overall data integrity. The LLMs are quite good at suggesting further questions to ask and look into.\n\nExtra tools:\nI find myself developing additional tools to process the data, e.g. I vibe coded a small and naive search engine over the wiki, which I both use directly (in a web ui), but more often I want to hand it off to an LLM via CLI as a tool for larger queries. \n\nFurther explorations:\nAs the repo grows, the natural desire is to also think about synthetic data generation + finetuning to have your LLM \"know\" the data in its weights instead of just context windows.\n\nTLDR: raw data from a given number of sources is collected, then compiled by an LLM into a .md wiki, then operated on by various CLIs by the LLM to do Q&A and to incrementally enhance the wiki, and all of it viewable in Obsidian. You rarely ever write or edit the wiki manually, it's the domain of the LLM. I think there is room here for an incredible new product instead of a hacky collection of scripts.",
    "source": "Twitter for iPhone",
    "retweetCount": 6386,
    "replyCount": 2642,
    "likeCount": 54089,
    "quoteCount": 1842,
    "viewCount": 18828032,
    "createdAt": "Thu Apr 02 20:42:21 +0000 2026",
    "lang": "en",
    "bookmarkCount": 98672,
    "isReply": false,
    "inReplyToId": null,
    "conversationId": "2039805659525644595",
    "displayTextRange": [
      0,
      275
    ],
    "inReplyToUserId": null,
    "inReplyToUsername": null,
    "author": {
      "type": "user",
      "userName": "karpathy",
      "url": "https://x.com/karpathy",
      "twitterUrl": "https://twitter.com/karpathy",
      "id": "33836629",
      "name": "Andrej Karpathy",
      "isVerified": false,
      "isBlueVerified": true,
      "verifiedType": null,
      "profilePicture": "https://pbs.twimg.com/profile_images/1296667294148382721/9Pr6XrPB_normal.jpg",
      "coverPicture": "https://pbs.twimg.com/profile_banners/33836629/1407117611",
      "description": "I like to train large deep neural nets. Previously Director of AI @ Tesla, founding team @ OpenAI, PhD @ Stanford.",
      "location": "Stanford",
      "followers": 2176186,
      "following": 1083,
      "status": "",
      "canDm": true,
      "canMediaTag": true,
      "createdAt": "Tue Apr 21 06:49:15 +0000 2009",
      "entities": {
        "description": {
          "urls": []
        },
        "url": {
          "urls": [
            {
              "display_url": "karpathy.ai",
              "expanded_url": "https://karpathy.ai",
              "indices": [
                0,
                23
              ],
              "url": "https://t.co/0EcFthjJXM"
            }
          ]
        }
      },
      "fastFollowersCount": 0,
      "favouritesCount": 23208,
      "hasCustomTimelines": true,
      "isTranslator": false,
      "mediaCount": 863,
      "statusesCount": 10092,
      "withheldInCountries": [],
      "affiliatesHighlightedLabel": {},
      "possiblySensitive": false,
      "pinnedTweetIds": [
        "1617979122625712128"
      ],
      "profile_bio": {},
      "isAutomated": false,
      "automatedBy": null
    },
    "extendedEntities": {},
    "card": null,
    "place": {},
    "entities": {
      "hashtags": [],
      "symbols": [],
      "urls": [],
      "user_mentions": []
    },
    "quoted_tweet": null,
    "retweeted_tweet": null,
    "article": null
  },
  "retweeted_tweet": null,
  "article": null
}