Browse Hacker News in the sidebar, preview articles in a readable panel, and
save stories to Obsidian — without leaving the editor.
Features
Stories sidebar — a dedicated Activity Bar view listing a Hacker News feed (Top / New / Best / Ask / Show / Jobs). Switch feeds from the view title bar, refresh on demand.
Article preview — the eye action opens a readable, themed webview of the article (Readability-extracted). Ask/Show posts without a link show their text.
Save to Obsidian — the cloud-upload action saves the story via the Local REST API, either as a link note or the full scraped article.
Row click opens the story in the browser; the context menu opens the HN discussion.
Build
pnpm install # from the monorepo root
pnpm --filter ./packages/plugin-vscode build
The bundle is written to dist/extension.js.
Dev mode (watch): pnpm --filter ./packages/plugin-vscode dev.
Run / debug
Open packages/plugin-vscode in VS Code and press F5 (Run Extension), or build
and package a .vsix with pnpm --filter ./packages/plugin-vscode package (requires
@vscode/vsce). Install the .vsix via the Extensions view → "Install from VSIX…".
Settings
Configure under File → Preferences → Settings → HN Reader (or the gear in the view title):
Setting
Default
Meaning
hnReader.obsidianUrl
http://127.0.0.1:27123
Local REST API base URL (use the non-encrypted HTTP server)
hnReader.obsidianApiKey
—
API key from the Local REST API plugin
hnReader.obsidianFolder
Hacker News
Vault folder for notes
hnReader.saveMode
link
link or article (full scrape)
hnReader.defaultFeed
top
Feed shown on load
hnReader.storiesLimit
30
Stories loaded per feed
Obsidian setup
Enable the Local REST API community plugin, turn on its non-encrypted HTTP
server (http://127.0.0.1:27123), and paste the URL and API key into the
settings above.
Notes
The extension host is Node, so article scraping uses linkedom + Readability (no browser DOM).
@hn/core is bundled directly from its TypeScript sources via the esbuild alias.