biqnt25 downloadsImport Alt (altalt.io) lecture notes with LLM-powered concept extraction, wikilinks, and exam summaries.
Turn Alt lecture recordings and slides into connected Obsidian notes.
User guide · 한국어 · Releases · Report a bug
Alt2Obs is for students who record their lectures with the Alt app. It reads the lectures in the Alt desktop app on your computer and writes one note per lecture into your vault: a section for every slide, with commentary that your own Claude Code or Codex CLI writes from the slide and the part of the recording that covers it, plus concept notes linked with [[wikilinks]]. You study in a viewer that scrolls the PDF and the note together, and your own memos survive every re-import.
The interface and the generated notes are in Korean, with academic terms kept in English. Alt2Obs was named Alt2Obsidian before 2.0.0. Its plugin id is alt2obsidian (only 2.0.0 used alt-to-obs).
The Synced Viewer: the slide PDF and the lecture note side by side, scrolled to the same slide.
[mm:ss] times. Opening a lecture PDF opens the viewer.[mm:ss] time. Or attach the lecture PDF and import it as a slide lecture.> [!note] 내 메모 (my memo) callouts and anything you write outside the managed blocks stay when you import again, and memos follow their slide when slides are added, removed or reordered. Only changed slides are generated again.English (한국어), such as Pipeline Hazard (파이프라인 해저드), linked from the commentary and reused across the lectures of a subject.
Pick a lecture from Alt and see the estimated usage before anything runs.
node:sqlite. The plugin uses it to read a copy of Alt's database: while Alt is closed, and while Alt runs, to find synced slide files. To check, open the developer console (Ctrl+Shift+I, or Cmd+Option+I on macOS) and run process.versions.node. With an older Node, start Alt before importing; synced slide files may then not be found.Community plugins. Open Settings → Community plugins and select Turn on community plugins if you see it. Select Browse, search for "Alt2Obs", then select Install and Enable. Updates then arrive through Obsidian's normal plugin updates.
Manually. Download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/alt2obsidian/, reload Obsidian and enable Alt2Obs under Settings → Community plugins.
BRAT. Add BiQnT/alt2obsidian as a beta plugin in BRAT to follow new releases.
alt2obsidian-* classes need the alt-to-obs-* classes.alt-to-obs): Obsidian treats 2.0.0 and later versions as two separate plugins, both named Alt2Obs. Install the new version, disable 2.0.0 without deleting it, then enable the new version: it imports 2.0.0's settings and records once and tells you so. Then delete 2.0.0 and set any hotkeys again. The user guide has the details.claude, or codex login).> [!note] 내 메모 callout under each slide.The user guide covers every option, lectures without slides, note checking and troubleshooting.
Alt2Obs has no telemetry, analytics, ads or update checks. This is everything it sends, needs and touches outside your vault.
claude or codex) as a child process. Each call sends its material to Anthropic or OpenAI under your account. The plugin itself sends nothing to these services. A call can include:claude mcp list checks the connection of every MCP server configured in Claude Code; this can start local servers and contact remote ones. When the Notion server cannot be passed to the call on its own (a claude.ai connector, or a server that is not a plain https address without headers), the fetch call also starts your other MCP servers, with their tools blocked.*.r2.cloudflarestorage.com); older Alt notes may point to Alt's earlier Supabase storage (*.supabase.co).The plugin is free. Its main features need an LLM CLI login: a Claude account with Claude Code access (a paid Claude plan or Anthropic API credits) or a ChatGPT plan that includes Codex (or an OpenAI API key). Every call counts against your plan's limits or your API usage. Optional: a Notion account for the Notion MCP. Your lectures come from the Alt app and your Alt account; the plugin never signs in to Alt.
~/Library/Application Support/alt, Windows %APPDATA%\alt, Linux $XDG_CONFIG_HOME/alt or ~/.config/alt, or the folder set in the settings. This is needed to list and import your lectures without a share link. The plugin reads:http-server-token, storage-httpServer.json) and the signed-in account (storage-desktopSync.json). The token is kept in memory only.lsof and ps (macOS), /proc (Linux), netstat and tasklist (Windows).$SHELL -ilc 'command -v claude' (or codex; /bin/zsh when $SHELL is unset), which loads your shell startup files such as .zshrc. On Windows it runs where. It also looks in common install folders.--version, --help, claude auth status, codex login status, and for Notion claude mcp list and claude mcp get.node.exe, and a cancelled call is ended with taskkill.~/.claude/cache/model-catalog/*-cc.json (or under $CLAUDE_CONFIG_DIR) and ~/.codex/models_cache.json (or under $CODEX_HOME).~/.claude/plugins/installed_plugins.json (or, without it, a walk of ~/.claude/plugins), and a Claude Code plugin's .mcp.json and .claude-plugin/plugin.json. Claude Code may keep a large fetch result as a file under ~/.claude/projects/; the plugin reads it but does not remove it.~/Library/Caches/alt2obsidian, Windows %LOCALAPPDATA%\alt2obsidian\Cache, Linux $XDG_CACHE_HOME/alt2obsidian or ~/.cache/alt2obsidian), one subfolder per vault. Lecture text is kept out of the vault so vault sync does not carry it.The plugin reads, and never changes, the files that version 2.0.0 (released under the id alt-to-obs) left in the vault's config folder (.obsidian by default):
plugins/alt-to-obs/data.json, and the modification times of that file and of the plugin's own data.json. Later starts read them again until the plugin first saves its data, or while 2.0.0's file cannot be read. The command Import settings from version 2.0.0 (alt-to-obs) reads 2.0.0's file again when you run it.community-plugins.json and plugins/alt-to-obs/manifest.json, to know whether 2.0.0 is still enabled./alt2obs Claude Code Skill, which imports a lecture from a Claude Code session with the same prompts and note format.npm install
npm run dev # development build with an inline source map
npm run build # production main.js, plus the Skill's CLI bundles
npm run lint # Obsidian's official ESLint rules (eslint-plugin-obsidianmd)
npm test # unit tests with fake claude/codex binaries, no tokens spent
npm run test:dom # viewer, sidebar, settings and PDF.js worker in headless Chromium
A release ships main.js, manifest.json and styles.css; the PDF.js worker is bundled into main.js. ALT2OBS_SMOKE=1 node test/smoke-cli.mjs runs each real CLI once (it uses a little of your plan), and scripts/bench/README.md describes the token benchmark.
MIT License, by BiQnT.
main.js bundles PDF.js (pdfjs-dist 4.10.38, Mozilla Foundation, Apache License 2.0, its license notice kept in the bundle) to read and render the slide PDFs.