claude-sessions-manager
Health Uyari
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- network request — Outbound network request in app.js
- rm -rf — Recursive force deletion command in uninstall.sh
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Pick up any Claude Code conversation right where you left off. No re-explaining the project, no lost context... In one click.
🔖 Claude Sessions Manager
Your daily starting point for Claude Code.
Pick up any conversation right where you left off, no re-explaining the project, no lost context.
🇺🇸 English · 🇧🇷 Português · 🇪🇸 Español · 🇯🇵 日本語 · 🇨🇳 简体中文 · 🇰🇷 한국어 · 🇩🇪 Deutsch
💡 Why use it
Every project has a hidden cost: reheating context. Every time you open Claude, you lose time:
- 🔁 Re-explaining the architecture
- 📍 Pointing out where you stopped
- 📂 Listing the important files
- 🧠 Realigning what was in progress
That's 15–30 minutes just to start being productive. And when the terminal closes, the context Claude just built is gone.
✨ Good news: Claude Code already saves every conversation for you to resume.
😩 The problem: finding the right conversation among dozens of auto-generated codes.
That's what this project solves. In 4 steps:
- 🏁 Open the dashboard
- 🎯 Find the right conversation
- 📋 Click and the command is already in your clipboard
- 💻 Paste in the terminal and pick up where you left off
Resuming costs seconds. Starting over costs hours.
✨ Features
| 🔁 One-click resume | Click a conversation → the resume command is copied to your clipboard instantly |
| 📋 Copy format | Choose in the header whether the copy button hands you claude --resume (terminal) or /resume (inside Claude), or asks every time |
| 🏷️ Names and notes | Give each conversation a human-readable name and jot down where you stopped |
| ⭐ Favorites | Highlight the conversations you use every day |
| 🗑️ Safe trash bin | Archive old ones without fear: permanent deletion requires double confirmation |
| ☑️ Bulk selection | Pick several conversations and favorite, move, trash or delete them in one shot |
| 🗂️ Move between projects | Send a conversation to another project; the cwd is rewritten on every line of the file |
| 🔍 Instant search | Filter by name, notes, project, branch, or by what was said in the conversation |
| ↕️ Sorting | By last activity, context consumed, size on disk or name |
| 📁 Grouped by project | Conversations organized by the project they belong to, with a sidebar counter |
| 📊 Useful info | Context consumed, size, branch, last activity, all visible on the card |
| 🌡️ Saturation warning | Conversations close to filling the context window are highlighted in yellow and red |
| ⌨️ Keyboard shortcuts | / search, Esc close, Enter resume, without lifting your hands off the keyboard |
| 🌗 Soft dark theme | Visual designed for hours on screen, with a terracotta accent inspired by Claude |
| ♿ Accessible | Keyboard navigation, proper contrast, honors the system's "reduce motion" setting |
| 🌍 7 languages | Português, English, Español, 日本語, 简体中文, 한국어, Deutsch. Switch it in the sidebar |
| 🔔 Update notice | Tells you when a new release is out and copies the update command |
📦 Installation
1️⃣ Clone the repository
git clone https://github.com/krugerrgabriel/claude-sessions-manager.git
cd claude-sessions-manager
2️⃣ Run the installer
sudo ./install.sh
The installer takes care of everything: it installs what's missing, copies the files, adjusts permissions, and configures the web server. Finishes in seconds.
3️⃣ Open it in your browser
Two ways, pick whichever you prefer:
🖥️ Directly via URL: http://localhost/claude-sessions/
⌨️ Or from the terminal:
claude-sessions
or
claude-sessions-manager
The installer creates that command automatically: it opens the dashboard in your default browser.
Done. 🎉
💡 Single prerequisite: any Linux with
apt(Ubuntu, Debian, Mint, Pop!_OS, etc.) andsudo.
⚙️ Advanced configuration
Only use these if you need to, everything works out of the box.
Install in a different path or URLsudo INSTALL_DIR=/opt/claude-sessions-manager URL_PATH=/dashboard ./install.sh
Then open http://localhost/dashboard/.
Use a different sessions foldersudo PROJECTS_DIR=/alternative/path/.claude/projects ./install.sh
Uninstall
sudo ./uninstall.sh # keeps your notes (names, favorites, descriptions)
sudo ./uninstall.sh --purge # removes everything, including your notes
⌨️ Shortcuts
| Key | Action |
|---|---|
/ |
Focus the search input |
Esc |
Close modal, clear selection, clear search, or close mobile menu |
Enter / Space |
Resume the focused conversation |
Ctrl+Enter |
Save edits (inside the modal) |
🏗️ How it works under the hood
┌─────────────────────────────────────────────────────────────────┐
│ Browser (you) │
└───────────────┬─────────────────────────────────┬───────────────┘
│ HTML/CSS/JS │ fetch /api/*
▼ ▼
┌────────────────────────┐ ┌────────────────────────────┐
│ Apache2 (static) │ │ mod_wsgi → app.wsgi (py) │
└────────────────────────┘ └──────────────┬─────────────┘
│ read/write
▼
┌─────────────────────────────────────────────────────┐
│ ~/.claude/projects/*/*.jsonl (your sessions) │
│ data/metadata.json (your notes) │
│ cache/sessions.json (internal cache) │
└─────────────────────────────────────────────────────┘
Stack
| Layer | Tech | Why |
|---|---|---|
| Frontend | HTML + CSS + vanilla JS | Zero build step, loads in <100ms |
| Backend | Python 3 (stdlib) | No pip install, no venv |
| Integration | mod_wsgi | Ships with modern Apache; runs as your user |
| Persistence | Local JSON | Your notes in a file you can hand-edit |
| Fonts | Inter + JetBrains Mono | Great readability on dense screens |
Repository layout
claude-sessions-manager/
├── index.html ← UI and SVG icons
├── style.css ← design system (dark theme)
├── app.js ← rendering and API logic
├── app.wsgi ← Python backend
├── i18n/ ← translation dictionaries (one JSON per language)
├── VERSION ← current version, synced from the latest release
├── install.sh ← installer
├── uninstall.sh ← uninstaller
├── README.md ← you are here
├── .gitignore ← ignores generated data
├── data/ ← (generated) your notes
└── cache/ ← (generated) internal cache
🔒 Security
- The backend runs as you, not as
www-data. It reads your sessions without a globalchmod. - The API only accepts IDs in UUID format (no path traversal).
- Permanent deletion requires double confirmation in the frontend.
- Serves only on http://localhost by default. Do not expose it to the internet without authentication.
🛠️ Developing
No build step. Edit and refresh the page.
# Force mod_wsgi to reload after changing the backend
sudo touch /var/www/html/claude-sessions/app.wsgi
# Tail the logs
sudo tail -f /var/log/apache2/error.log
# Clear the internal cache (after changing parsing logic)
rm -f /var/www/html/claude-sessions/cache/sessions.json
🐛 Troubleshooting
"Failed to load sessions"sudo tail -20 /var/log/apache2/error.log
Common causes:
~/.claude/projects/doesn't exist yet, run Claude Code at least oncemod_wsgiisn't enabled:sudo a2enmod wsgi && sudo systemctl reload apache2
The backend needs to run as the file owner. Check:
grep WSGIDaemonProcess /etc/apache2/conf-available/claude-sessions.conf
The line must include user=YOUR_USERNAME.
Only main (resumable) sessions are listed. Internal sub-agent conversations are intentionally ignored.
Changed the backend but the UI doesn't updatesudo touch /var/www/html/claude-sessions/app.wsgi
sudo systemctl reload apache2
In the browser: Ctrl+Shift+R to bust the browser cache.
🤝 Contributing
PRs welcome. Before submitting:
- Keep zero dependencies (no
pip, nonpm) - Follow the design system in
style.css(semantic CSS variables) - New icons: add a
<symbol>to the SVG sprite inindex.html(Lucide-style, stroke 2, 24×24)
📜 License
MIT, do whatever you want.
Made with vim and coffee.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi