惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
博客园_首页
S
SegmentFault 最新的问题
罗磊的独立博客
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
D
Docker
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
V
V2EX
大猫的无限游戏
大猫的无限游戏
V
Visual Studio Blog
腾讯CDC
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
T
Tailwind CSS Blog
Vercel News
Vercel News
H
Help Net Security
博客园 - Franky
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - AmirSoleimani/claude-stash: A Claude Code plugin...
Amirso · 2026-05-15 · via Hacker News: Show HN

A lightweight stash for Claude Code. Capture ideas mid-task without losing focus, then pop them back when you're ready. Single-session, no context loss.

You're deep in a refactor, an idea pops up, you /stash:push it, you keep working. When you're done, /stash:pop continues with the next thing — same Claude session, no context loss.

Distributed as a Claude Code plugin — one-line install, automatic updates, works in every project.

Install

In Claude Code:

/plugin marketplace add AmirSoleimani/claude-stash
/plugin install stash@claude-stash

That's it. The commands and Stop hook are available immediately in every project. Updates come via /plugin update.

Local development

To hack on the plugin without pushing to GitHub:

git clone https://github.com/AmirSoleimani/claude-stash.git
claude --plugin-dir ./claude-stash

Use /reload-plugins after edits to pick up changes.

Commands

Command What it does
/stash:push <text> Push an idea onto the stash (does not start work on it)
/stash:list Show all stashed items, numbered
/stash:show N Print item N alone (for reading or copying)
/stash:edit N <new text> Replace text of item N inline (preserves original timestamp)
/stash:edit N Open .claude/stash.md in $EDITOR for free-form editing
/stash:pop or /stash:pop N Pop an item and continue working on it in the current session
/stash:drop N Remove item N without doing it
/stash:log Show history of popped and dropped items

Plus a Stop hook that reminds you of pending items every time Claude finishes a turn — passively, never auto-popping.

Philosophy

  • Single session by default. /stash:pop keeps your current context. For a fresh context, run /clear first.
  • Plain markdown files as the source of truth. Order in the stash = priority. Edit with your editor anytime.
  • Two files, two concerns. .claude/stash.md is the queue (transient). .claude/stash.log.md is the history (permanent). Popped and dropped items leave the queue and appear in the log.
  • Numbers are display-only. They shift after every operation. Don't store them.
  • The hook nudges, never decides. You always explicitly /stash:pop when ready.

Usage walk-through

You're mid-refactor, an idea pops up:

> /stash:push switch the auth middleware to the new guardian proxy
Pushed to stash (1 items total).

A few more:

> /stash:push add rate-limit headers to /v1/deploy
> /stash:push investigate why berth_logs truncates on long runs

You finish the refactor. The Stop hook fires:

📦 Stash: 3 items waiting. Top → switch the auth middleware to the new guardian proxy
   /stash:pop to continue, /stash:pop N to skip ahead, /stash:list to review.

Glance at the list:

> /stash:list
Stash (3 items):
1. switch the auth middleware to the new guardian proxy
2. add rate-limit headers to /v1/deploy
3. investigate why berth_logs truncates on long runs

Realize item 2 has a typo — read the current text:

> /stash:show 2
Item 2 (captured 2026-05-14 09:34):

add rate-limit headers to /v1/deploy

Fix it inline:

> /stash:edit 2 add rate-limit headers to /v1/deploy and /v1/destroy
Edited item 2.

Or for free-form editing of any item, open in your editor:

> /stash:edit 3
[opens .claude/stash.md in $EDITOR with cursor on item 3]

berth_logs feels more urgent — pop it directly:

> /stash:pop 3
Popped from stash: investigate why berth_logs truncates on long runs
[Claude starts working on it in the same session]

Decided an item is no longer relevant:

> /stash:drop 1
Dropped: switch the auth middleware to the new guardian proxy
(1 items remaining)

Review history later:

> /stash:log
Stash log (2 entries):
- [2026-05-14 15:30] POPPED  investigate why berth_logs truncates on long runs
- [2026-05-14 15:35] DROPPED switch the auth middleware to the new guardian proxy

For reordering, edit the file directly:

$EDITOR .claude/stash.md

File format

.claude/stash.md — the queue. Top of file = position 1.

# Stash

- [2026-05-14 09:12] switch the auth middleware to the new guardian proxy
- [2026-05-14 09:34] add rate-limit headers to /v1/deploy
- [2026-05-13 18:02] investigate why berth_logs truncates on long runs

.claude/stash.log.md — the history. Appended to on every pop and drop.

# Stash log

- [2026-05-14 09:45] POPPED  fix the deploy webhook
- [2026-05-14 11:12] DROPPED rename the YAML rubric format
- [2026-05-14 15:30] POPPED  investigate why berth_logs truncates on long runs

Both are human-editable. Grep, sed, vim — all fair game.

Editing flow tips

Three ways to fix or refine an item, pick what fits:

  • Type-it-out: /stash:edit N <full new text> — fastest if you know the full new text.
  • Read first, then edit: /stash:show N to see the current text (select-and-copy from your terminal), modify it, then /stash:edit N <modified text>.
  • Free-form: /stash:edit N (no arguments) opens the whole stash file in $EDITOR for any kind of change — a single character, multiple lines, reordering, whatever.

How the Stop hook works

The hook fires when Claude finishes a turn and prints a one-line reminder if items are waiting. It does not auto-pop or auto-continue. You always type /stash:pop yourself.

The hook is shipped inside the plugin but reads .claude/stash.md from your project (via $CLAUDE_PROJECT_DIR), so each project has its own stash.

If the reminder feels noisy, you can disable just the hook in /plugin settings while keeping the commands.

How the commands work

Each command is a markdown file under commands/. The plugin name (stash) becomes the namespace, so commands/push.md/stash:push. The body is a prompt that tells Claude what to do — no code. Claude itself reads and writes the stash file when you invoke a command.

This means:

  • Zero runtime dependencies (just bash for the hook).
  • Commands are auditable and editable in plain English.
  • If a command misbehaves, you tweak the prompt.

Trade-off: command reliability depends on Claude following the instructions. In practice this is fine for simple file ops, but you can tighten the language in any command if you see edge cases.

Why "stash" and not "inbox" or "todo"?

push and pop are the right verbs — concrete, familiar to engineers, more natural than add/take. "Stash" is the noun that fits those verbs. It evokes the right feeling: set something aside, come back to it later.

A note on the obvious comparison: this isn't really like git stash. Git stash saves work-in-progress code; this saves future work as descriptions, while you keep doing your current task. Different mechanic, similar vibe. The shared spirit is "set aside, come back to" — that's where the name comes from, not from any deeper mechanical analogy.

This also isn't a todo list (too formal, implies prioritized refined tasks) or an inbox (too email-y, too corporate). It's a scratch space for "I had a thought mid-flow, deal with it after."

Gotchas

  • /stash:pop cannot clear context mid-turn. Use /clear then /stash:pop for a fresh session.
  • .claude/stash.md and .claude/stash.log.md are project-local. I recommend committing them to git — your stash is project state.
  • First time you install, Claude Code shows a trust dialog for the plugin. Approve it.
  • This plugin does NOT interact with git stash in any way. The name is just a metaphor.

Contributing

Issues and PRs welcome. Ideas not built yet:

  • Voice capture integration (transcribe → /stash:push)
  • /stash:undo to restore the last popped/dropped item
  • Smarter Stop hook (cooldown, only fire on logical task end)
  • Cross-worktree visibility

License

MIT