Skip to content

Repository files navigation

✦ miscosas

fzf for your AI agent sessions — search, inspect and resume any Claude Code / Codex / pi session from a TUI. Quick notes with full-text search included.

Versión en castellano →

demo

Install

One-liner (clones the repo into ~/.local/share/miscosas/app and installs the miscosas / mc commands):

curl -fsSL https://miscosas.ceroclawd.com/install.sh | bash

Or from a clone:

git clone https://github.com/gonzalonicolasr/miscosas
cd miscosas && ./install.sh

Requirements

  • Bun — the TUI runs on Bun (OpenTUI's native renderer uses bun:ffi); tested on Bun 1.3+. The installer sets it up if missing.
  • Linux or macOS.
  • tmux — optional but recommended: with tmux, ⏎ resumes the session in a dedicated tmux session. Without it, the resume command is copied to your clipboard instead.
  • wl-copy / xclip / pbcopy — any one of them, for the clipboard fallback.

How it works

miscosas ships a local indexer: every time you open the TUI (and on Ctrl-L) it scans the session files that the agent CLIs already keep on your disk —

  • ~/.claude/projects/**.jsonl (Claude Code)
  • ~/.codex/sessions/**.jsonl (Codex)
  • ~/.pi/agent/sessions/**.jsonl (pi)

— extracts the metadata (cwd, branch, dates, your real prompts) and indexes it into a local SQLite with FTS5. Incremental by mtime, fail-soft: a broken file never breaks the TUI.

Everything stays local. The index lives in ~/.local/share/miscosas/miscosas.sqlite (override with MISCOSAS_DB=...). Nothing is uploaded anywhere. Tool dumps / internal CLI blocks are filtered out of the index, and common secret patterns (API keys, tokens, passwords) are redacted before they ever touch the database.

Selecting a session shows its detail (first/last prompt, a searchable summary of the whole session, resume command). ⏎ resumes it: inside tmux it opens claude --resume <id> / codex resume <id> / pi --session <id> in a dedicated tmux session and switches you there (or re-attaches if it is already alive); outside tmux it copies the resume command to your clipboard.

Keys

The search box is always active (fzf-style): open the TUI and just type.

Key Action
(type) search-as-you-type over title/description/content/tags (FTS5)
#tag (in the search box) filter by tag (prefix match) — combinable with text: retry #claude
/ (or Ctrl-K / Ctrl-J) move selection
Shift-↑ / Shift-↓ scroll the detail panel
Shift-PgUp / Shift-PgDn scroll the detail half a page
Esc clear the search
Tab cycle filter: All / Notes / Sessions
note → edit · session → resume (tmux or clipboard)
Ctrl-N / Ctrl-E / Ctrl-D new / edit / delete note (confirm with y)
Ctrl-R resume the selected session
Ctrl-L refresh + re-index sessions
Ctrl-C / Ctrl-Q quit
🖱 mouse click selects · double click opens/edits · right click copies (resume/content) · wheel scrolls · clickable buttons in the detail panel

In the note form: Tab switches fields · Ctrl-E edits the content in $EDITOR · Ctrl-S saves · Esc cancels (with unsaved changes it asks for a second Esc).

Quick notes

mc add "an idea worth keeping"     # capture without opening the TUI
echo "something" | mc add          # also reads stdin

Notes live in the same SQLite and the same search: type to find them, to edit, content renders as markdown in the detail panel.

Notes

  • The UI copy is currently Spanish (labels like Primer prompt: are part of the on-disk item format). An English UI is on the roadmap.
  • The list auto-refreshes when another process writes to the DB (file watch); the cursor stays on the same item.

License

MIT — by Gonzalo Rocca.

About

fzf for your AI agent sessions — search, browse and resume Claude Code / Codex / pi sessions from a fast sunset-themed TUI

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages