Lapso
Post-it por sessão do Claude Code: um painel dockado que mostra a nota da aba de sessão em destaque. Troca de aba → troca a nota. Temporária e descartável (some quando a aba fecha).
Nome do repositório no GitHub: notes-session-vscode (histórico) → renomeado pra lapso. Nome do produto/extensão: Lapso.
Como funciona
- Extensão contribui um ícone na Activity Bar (
Lapso) com um WebviewView, tema Dracula Soft estilo mini-terminal.
- Uma nota por sessão do Claude Code, em
.lapso/<sessionId>.md (pasta .lapso/ no .gitignore — temporária, não versiona).
- Segue a aba em destaque: quando você foca uma aba de sessão do Claude Code, o painel resolve qual sessão é (casa o título da aba com o
sessionId lendo os transcripts .jsonl do Claude Code) e mostra a nota daquela sessão. Troca de aba → troca a nota.
- Casamento preciso por ID: o Claude escreve o status em
.lapso/<seu-sessionId>.md (ele conhece o próprio sessionId); a extensão resolve aba→sessionId pelo título. Convergem no mesmo arquivo, sem chute.
- Descartável: ao fechar a aba de uma sessão, a extensão apaga a nota
.lapso/<sessionId>.md dela.
- O painel tem duas zonas no mesmo arquivo, por marcador HTML:
- Status (topo, read-only) — território do Claude Code, efeito de máquina de escrever. Entre
<!-- lapso:status --> e <!-- /lapso:status -->.
- Suas notas (baixo, editável) — só você mexe. Entre
<!-- lapso:notes --> e <!-- /lapso:notes -->.
- Não-sobrescrever, por design: cada zona salva relendo a outra do disco e recombinando → o Claude nunca apaga suas notas e você nunca apaga o status dele.
- Scroll contido no campo, barra estilizada.
- Requer
CLAUDE_CONFIG_DIR (ou ~/.claude) acessível — é de lá que a extensão lê os transcripts pra casar aba→sessão.
Instalar
- Baixe o arquivo
lapso-<versão>.vsix anexado no último release.
- Instale com um comando (precisa do VSCode com o
code no PATH):
code --install-extension lapso-0.2.2.vsix
Developer: Reload Window (ou reabra o VSCode). O ícone do Lapso aparece na Activity Bar.
Buildar do código (dev)
git clone https://github.com/lucasftas/lapso.git
cd lapso
npm install
npm run compile
npx @vscode/vsce package --allow-missing-repository --no-yarn
code --install-extension lapso-0.2.2.vsix
Reinstalando por cima de uma versão já rodando? O VSCode não recarrega a extensão sozinho — o host em memória continua com o código antigo até você dar Developer: Reload Window. Se reempacotar mantendo o mesmo número de versão, o VSCode nem sinaliza a atualização. Por isso cada build novo sobe a versão (semver) — garante que o reload pega o código novo.
Requisito: Node.js + code CLI no PATH (VSCode → Command Palette → "Shell Command: Install 'code' command in PATH").
Pra deixar na lateral direita (secondary side bar): arraste o ícone do Lapso da Activity Bar pra área da secondary side bar (Ctrl+Alt+B abre/fecha) uma vez — o VSCode lembra o posicionamento depois disso.
Convenção pro Claude Code
O Claude escreve em .lapso/<sessionId>.md (o próprio sessionId dele) na pasta .lapso/ do workspace — gitignored, temporário. A extensão resolve a aba de sessão em destaque → sessionId (casando o título da aba com os transcripts .jsonl) e mostra a nota daquele arquivo. Não há mais LAPSO.md versionado na raiz.
Dev
npm install
npm run watch
Depois F5 no VSCode (ou code --extensionDevelopmentPath=. numa pasta de teste) abre um Extension Development Host com a extensão carregada.
Estrutura
src/extension.ts — toda a lógica (provider, parse de zonas, webview)
resources/icon.svg — ícone da Activity Bar
docs/specs/ — PRD.md (decisões) + Spec.md (milestones)
Releases
https://github.com/lucasftas/lapso/releases