aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml4
-rw-r--r--README.es.md77
-rw-r--r--README.md77
-rw-r--r--claude_logbook/__init__.py (renamed from claude_sesiones/__init__.py)0
-rw-r--r--claude_logbook/__main__.py (renamed from claude_sesiones/__main__.py)0
-rw-r--r--claude_logbook/cli.py (renamed from claude_sesiones/cli.py)44
-rw-r--r--claude_logbook/memory.py (renamed from claude_sesiones/memory.py)0
-rw-r--r--claude_logbook/sessions.py (renamed from claude_sesiones/sessions.py)2
-rw-r--r--claude_logbook/template.html (renamed from claude_sesiones/template.html)2
-rw-r--r--claude_logbook/terminal.py (renamed from claude_sesiones/terminal.py)2
-rw-r--r--claude_logbook/webpage.py (renamed from claude_sesiones/webpage.py)0
-rw-r--r--pyproject.toml21
-rw-r--r--tests/test_cli.py2
-rw-r--r--tests/test_memory.py2
-rw-r--r--tests/test_sessions.py2
-rw-r--r--tests/test_terminal.py2
-rw-r--r--tests/test_webpage.py2
17 files changed, 122 insertions, 117 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index cbd02c6..6151b64 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -32,5 +32,5 @@ jobs:
- name: Se instala y el comando arranca
run: |
pip install .
- claude-sesiones --version
- claude-sesiones --help
+ claude-logbook --version
+ claude-logbook --help
diff --git a/README.es.md b/README.es.md
index be117a0..5f22539 100644
--- a/README.es.md
+++ b/README.es.md
@@ -1,4 +1,4 @@
-# claude-sesiones
+# claude-logbook
Explorá todas las conversaciones de [Claude Code](https://claude.com/claude-code)
que tenés guardadas en la máquina: como tabla en la terminal, o como una página
@@ -32,38 +32,38 @@ ya excluye `sesiones.html` y `data.json`, pero el archivo lo cuidás vos.
Necesita Python 3.9 o más nuevo. Nada más.
```bash
-pipx install git+https://github.com/ElvisClaros/claude-sesiones
+pipx install git+https://github.com/ElvisClaros/claude-logbook
```
O con pip, o directamente desde un clon:
```bash
-pip install git+https://github.com/ElvisClaros/claude-sesiones
+pip install git+https://github.com/ElvisClaros/claude-logbook
-git clone https://github.com/ElvisClaros/claude-sesiones && cd claude-sesiones
-python3 -m claude_sesiones # sin instalar nada
+git clone https://github.com/ElvisClaros/claude-logbook && cd claude-logbook
+python3 -m claude_logbook # sin instalar nada
```
## Uso
```bash
-claude-sesiones # tabla de todas las sesiones
-claude-sesiones docker # filtra por título, ruta o rama
-claude-sesiones -s 3 # lee el chat nº 3 de la tabla
-claude-sesiones -s 5d10f1ee # lo mismo, por prefijo de UUID
-claude-sesiones -g "port already" # busca dentro de las conversaciones
-claude-sesiones -r 3 # imprime el comando para reanudarla
-eval "$(claude-sesiones -r 3)" # …o la reanuda directamente
-claude-sesiones --html --open # genera sesiones.html y lo abre
-claude-sesiones -m # las memorias de tus proyectos
+claude-logbook # tabla de todas las sesiones
+claude-logbook docker # filtra por título, ruta o rama
+claude-logbook -s 3 # lee el chat nº 3 de la tabla
+claude-logbook -s 5d10f1ee # lo mismo, por prefijo de UUID
+claude-logbook -g "port already" # busca dentro de las conversaciones
+claude-logbook -r 3 # imprime el comando para reanudarla
+eval "$(claude-logbook -r 3)" # …o la reanuda directamente
+claude-logbook --html --open # genera sesiones.html y lo abre
+claude-logbook -m # las memorias de tus proyectos
```
El número es la posición de la fila **en la tabla que estás viendo**, así que si
filtraste hay que repetir el filtro para leer esa fila:
```bash
-claude-sesiones docker # muestra 3 resultados
-claude-sesiones docker -s 2 # lee el 2º de esos tres
+claude-logbook docker # muestra 3 resultados
+claude-logbook docker -s 2 # lee el 2º de esos tres
```
### Opciones
@@ -93,10 +93,10 @@ claude-sesiones docker -s 2 # lee el 2º de esos tres
Es irreversible y pregunta antes, salvo que pases `-y`:
```bash
-claude-sesiones --delete-empty --dry-run # qué borraría
-claude-sesiones --delete-empty # borra las vacías
-claude-sesiones -D 101 -D e0a4300e # borra sesiones puntuales
-claude-sesiones -p /tmp --delete-empty # solo las vacías de ese proyecto
+claude-logbook --delete-empty --dry-run # qué borraría
+claude-logbook --delete-empty # borra las vacías
+claude-logbook -D 101 -D e0a4300e # borra sesiones puntuales
+claude-logbook -p /tmp --delete-empty # solo las vacías de ese proyecto
```
Avisa si alguno de los archivos se escribió en los últimos cinco minutos: es muy
@@ -116,12 +116,12 @@ aunque el archivo siga ahí, así que la diferencia entre ambos conviene mirarla
`-m` cambia el sustantivo y reusa los mismos verbos que ya conocés:
```bash
-claude-sesiones -m # tabla de memorias
-claude-sesiones -m docker # busca en nombre, descripción y cuerpo
-claude-sesiones -m --type user # solo las de un tipo
-claude-sesiones -m -s 3 # lee la memoria nº 3
-claude-sesiones -m -s deadlock # lo mismo, por nombre
-claude-sesiones -m -p /home/u/proj # las de un proyecto
+claude-logbook -m # tabla de memorias
+claude-logbook -m docker # busca en nombre, descripción y cuerpo
+claude-logbook -m --type user # solo las de un tipo
+claude-logbook -m -s 3 # lee la memoria nº 3
+claude-logbook -m -s deadlock # lo mismo, por nombre
+claude-logbook -m -p /home/u/proj # las de un proyecto
```
Los tipos los define Claude al escribirlas: **project** es trabajo en curso,
@@ -131,7 +131,7 @@ Los tipos los define Claude al escribirlas: **project** es trabajo en curso,
### Auditar
```bash
-claude-sesiones -m --check
+claude-logbook -m --check
```
Sale con código 1 si encuentra algo, y reporta:
@@ -151,13 +151,13 @@ de borrar el archivo, saca su línea de `MEMORY.md` para no dejar el índice
apuntando a la nada.
```bash
-claude-sesiones -m -D 3 --dry-run # qué borraría
-claude-sesiones -m -D deploy-docker # borra esa memoria
+claude-logbook -m -D 3 --dry-run # qué borraría
+claude-logbook -m -D deploy-docker # borra esa memoria
```
## La página HTML
-`claude-sesiones --html` genera un único archivo con los datos adentro. Sin
+`claude-logbook --html` genera un único archivo con los datos adentro. Sin
servidor, sin red, sin paso de build: lo copiás a otra máquina y sigue andando.
- Búsqueda por título, ruta, rama o UUID, y opcionalmente dentro de las
@@ -184,7 +184,7 @@ Claude Code guarda una conversación por archivo, en formato JSON Lines:
(Si moviste ese directorio, respeta `CLAUDE_CONFIG_DIR`.)
-Cada línea es un evento. `claude-sesiones` los recorre y se queda con la
+Cada línea es un evento. `claude-logbook` los recorre y se queda con la
conversación: tus mensajes, las respuestas de Claude, y una línea por
herramienta usada, del estilo `Bash: git status`. A propósito **descarta lo que
devolvieron las herramientas**: son el 95 % de los bytes en disco y casi nada
@@ -206,7 +206,7 @@ Algunos detalles que conviene saber:
del mismo proyecto y queda marcada.
- **Sidechains** (transcripciones de subagentes) se saltean.
- **Caché.** Lo parseado se guarda en
- `$XDG_CACHE_HOME/claude-sesiones/cache.json`, indexado por tamaño y mtime. Es
+ `$XDG_CACHE_HOME/claude-logbook/cache.json`, indexado por tamaño y mtime. Es
solo una optimización: si falta, quedó viejo o está roto, se re-parsea todo.
`--no-cache` lo saltea por completo.
@@ -262,7 +262,7 @@ Cada memoria de `m`:
## Desarrollo
```bash
-git clone https://github.com/ElvisClaros/claude-sesiones && cd claude-sesiones
+git clone https://github.com/ElvisClaros/claude-logbook && cd claude-logbook
python3 -m unittest discover -s tests -t .
```
@@ -271,11 +271,12 @@ tocan `~/.claude`. No hay nada que instalar: ni runner de tests ni dependencias.
| Módulo | De qué se ocupa |
| --- | --- |
-| `claude_sesiones/sessions.py` | Parsear los `.jsonl`, el caché, los filtros. |
-| `claude_sesiones/terminal.py` | Colores ANSI, la tabla, imprimir un chat. |
-| `claude_sesiones/webpage.py` | Meter los datos adentro del template. |
-| `claude_sesiones/cli.py` | Los argumentos y los comandos. |
-| `claude_sesiones/template.html` | La página: marcado, estilos y el código del navegador. |
+| `claude_logbook/sessions.py` | Parsear los `.jsonl`, el caché, los filtros. |
+| `claude_logbook/memory.py` | Leer los `memory/*.md` y auditarlos. |
+| `claude_logbook/terminal.py` | Colores ANSI, la tabla, imprimir un chat. |
+| `claude_logbook/webpage.py` | Meter los datos adentro del template. |
+| `claude_logbook/cli.py` | Los argumentos y los comandos. |
+| `claude_logbook/template.html` | La página: marcado, estilos y el código del navegador. |
## Licencia
diff --git a/README.md b/README.md
index 31756a2..7e44cfe 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# claude-sesiones
+# claude-logbook
Browse every [Claude Code](https://claude.com/claude-code) conversation stored on
your machine — as a table in your terminal, or as a single self-contained HTML
@@ -36,38 +36,38 @@ the file itself is yours to look after.
Requires Python 3.9 or newer. Nothing else.
```bash
-pipx install git+https://github.com/ElvisClaros/claude-sesiones
+pipx install git+https://github.com/ElvisClaros/claude-logbook
```
Or with pip, or straight from a clone:
```bash
-pip install git+https://github.com/ElvisClaros/claude-sesiones
+pip install git+https://github.com/ElvisClaros/claude-logbook
-git clone https://github.com/ElvisClaros/claude-sesiones && cd claude-sesiones
-python3 -m claude_sesiones # no install needed
+git clone https://github.com/ElvisClaros/claude-logbook && cd claude-logbook
+python3 -m claude_logbook # no install needed
```
## Usage
```bash
-claude-sesiones # table of every session
-claude-sesiones docker # filter by title, path or branch
-claude-sesiones -s 3 # read conversation #3 from the table
-claude-sesiones -s 5d10f1ee # same, by UUID prefix
-claude-sesiones -g "port already" # search inside the conversations
-claude-sesiones -r 3 # print the command that resumes it
-eval "$(claude-sesiones -r 3)" # …or resume it right away
-claude-sesiones --html --open # build sesiones.html and open it
-claude-sesiones -m # your projects' memories
+claude-logbook # table of every session
+claude-logbook docker # filter by title, path or branch
+claude-logbook -s 3 # read conversation #3 from the table
+claude-logbook -s 5d10f1ee # same, by UUID prefix
+claude-logbook -g "port already" # search inside the conversations
+claude-logbook -r 3 # print the command that resumes it
+eval "$(claude-logbook -r 3)" # …or resume it right away
+claude-logbook --html --open # build sesiones.html and open it
+claude-logbook -m # your projects' memories
```
The number is the row's position **in the table you are looking at**, so if you
filtered, repeat the filter to read that row:
```bash
-claude-sesiones docker # shows 3 results
-claude-sesiones docker -s 2 # reads the 2nd of those three
+claude-logbook docker # shows 3 results
+claude-logbook docker -s 2 # reads the 2nd of those three
```
### Options
@@ -97,10 +97,10 @@ claude-sesiones docker -s 2 # reads the 2nd of those three
Irreversible, and it asks first unless you pass `-y`:
```bash
-claude-sesiones --delete-empty --dry-run # what it would delete
-claude-sesiones --delete-empty # delete the empty ones
-claude-sesiones -D 101 -D e0a4300e # delete specific sessions
-claude-sesiones -p /tmp --delete-empty # only the empty ones of that project
+claude-logbook --delete-empty --dry-run # what it would delete
+claude-logbook --delete-empty # delete the empty ones
+claude-logbook -D 101 -D e0a4300e # delete specific sessions
+claude-logbook -p /tmp --delete-empty # only the empty ones of that project
```
It warns you about any file written in the last five minutes: that is very
@@ -119,12 +119,12 @@ though the file is still there, so the gap between the two is worth watching.
`-m` swaps the noun and reuses the verbs you already know:
```bash
-claude-sesiones -m # table of memories
-claude-sesiones -m docker # search name, description and body
-claude-sesiones -m --type user # only one kind
-claude-sesiones -m -s 3 # read memory #3
-claude-sesiones -m -s deadlock # same, by name
-claude-sesiones -m -p /home/u/proj # only one project's
+claude-logbook -m # table of memories
+claude-logbook -m docker # search name, description and body
+claude-logbook -m --type user # only one kind
+claude-logbook -m -s 3 # read memory #3
+claude-logbook -m -s deadlock # same, by name
+claude-logbook -m -p /home/u/proj # only one project's
```
Claude picks the kind when it writes them: **project** is work in progress,
@@ -134,7 +134,7 @@ and **reference** points at external resources.
### Auditing
```bash
-claude-sesiones -m --check
+claude-logbook -m --check
```
Exits 1 if it finds anything, and reports:
@@ -154,13 +154,13 @@ removing the file it drops its line from `MEMORY.md`, so the index is not left
pointing at nothing.
```bash
-claude-sesiones -m -D 3 --dry-run # what it would delete
-claude-sesiones -m -D deploy-docker # delete that memory
+claude-logbook -m -D 3 --dry-run # what it would delete
+claude-logbook -m -D deploy-docker # delete that memory
```
## The HTML page
-`claude-sesiones --html` produces one file with the data embedded inside it. No
+`claude-logbook --html` produces one file with the data embedded inside it. No
server, no network, no build step — copy it to another machine and it still
works.
@@ -189,7 +189,7 @@ Claude Code writes one JSON Lines file per conversation:
(`CLAUDE_CONFIG_DIR` is honoured if you moved that directory.)
-Every line is an event. `claude-sesiones` walks them and keeps the conversation
+Every line is an event. `claude-logbook` walks them and keeps the conversation
itself — your messages, Claude's replies, and a one-line summary per tool call
such as `Bash: git status`. It deliberately **drops tool results**, which are
about 95% of the bytes on disk and almost none of the meaning.
@@ -210,7 +210,7 @@ A few details worth knowing:
so the path is borrowed from another session of the same project and flagged.
- **Sidechains** (subagent transcripts) are skipped.
- **Cache.** Parsed sessions are cached in
- `$XDG_CACHE_HOME/claude-sesiones/cache.json`, keyed by size and mtime. It is
+ `$XDG_CACHE_HOME/claude-logbook/cache.json`, keyed by size and mtime. It is
only an optimisation: if it is missing, stale or corrupt, everything is
re-parsed. `--no-cache` skips it entirely.
@@ -265,7 +265,7 @@ Each memory in `m`:
## Development
```bash
-git clone https://github.com/ElvisClaros/claude-sesiones && cd claude-sesiones
+git clone https://github.com/ElvisClaros/claude-logbook && cd claude-logbook
python3 -m unittest discover -s tests -t .
```
@@ -274,11 +274,12 @@ The tests build fake `.jsonl` trees in a temporary directory and never touch
| Module | Responsibility |
| --- | --- |
-| `claude_sesiones/sessions.py` | Parsing the `.jsonl` files, the cache, filters. |
-| `claude_sesiones/terminal.py` | ANSI colours, the table, printing a conversation. |
-| `claude_sesiones/webpage.py` | Embedding the data into the template. |
-| `claude_sesiones/cli.py` | Argument parsing and the commands. |
-| `claude_sesiones/template.html` | The page: markup, styles and the browser-side code. |
+| `claude_logbook/sessions.py` | Parsing the `.jsonl` files, the cache, filters. |
+| `claude_logbook/memory.py` | Reading the `memory/*.md` files and auditing them. |
+| `claude_logbook/terminal.py` | ANSI colours, the table, printing a conversation. |
+| `claude_logbook/webpage.py` | Embedding the data into the template. |
+| `claude_logbook/cli.py` | Argument parsing and the commands. |
+| `claude_logbook/template.html` | The page: markup, styles and the browser-side code. |
## License
diff --git a/claude_sesiones/__init__.py b/claude_logbook/__init__.py
index fa839b1..fa839b1 100644
--- a/claude_sesiones/__init__.py
+++ b/claude_logbook/__init__.py
diff --git a/claude_sesiones/__main__.py b/claude_logbook/__main__.py
index dbdd066..dbdd066 100644
--- a/claude_sesiones/__main__.py
+++ b/claude_logbook/__main__.py
diff --git a/claude_sesiones/cli.py b/claude_logbook/cli.py
index 4dc5ab2..6a465dd 100644
--- a/claude_sesiones/cli.py
+++ b/claude_logbook/cli.py
@@ -27,41 +27,41 @@ RECENT_SECONDS = 300
EPILOG = """\
ejemplos:
- claude-sesiones tabla de todas las sesiones
- claude-sesiones docker filtra por título, ruta o rama
- claude-sesiones -s 3 lee el chat nº 3 de la tabla
- claude-sesiones -s 5d10f1ee lo mismo, por prefijo de UUID
- claude-sesiones -g "port already" busca dentro de las conversaciones
- claude-sesiones -r 3 comando para reanudar la nº 3
- eval "$(claude-sesiones -r 3)" reanudarla directamente
- claude-sesiones --html --open genera sesiones.html y lo abre
+ claude-logbook tabla de todas las sesiones
+ claude-logbook docker filtra por título, ruta o rama
+ claude-logbook -s 3 lee el chat nº 3 de la tabla
+ claude-logbook -s 5d10f1ee lo mismo, por prefijo de UUID
+ claude-logbook -g "port already" busca dentro de las conversaciones
+ claude-logbook -r 3 comando para reanudar la nº 3
+ eval "$(claude-logbook -r 3)" reanudarla directamente
+ claude-logbook --html --open genera sesiones.html y lo abre
el nº es la posición en la tabla que estás viendo, así que si filtraste
hay que repetir el filtro para leer esa fila:
- claude-sesiones docker muestra 3 resultados
- claude-sesiones docker -s 2 lee el 2º de esos tres
+ claude-logbook docker muestra 3 resultados
+ claude-logbook docker -s 2 lee el 2º de esos tres
borrado (irreversible; pregunta antes, salvo con -y):
- claude-sesiones --delete-empty --dry-run qué borraría
- claude-sesiones --delete-empty borra las vacías
- claude-sesiones -D 101 -D e0a4300e borra sesiones puntuales
- claude-sesiones -p /tmp --delete-empty solo las vacías de ese proyecto
+ claude-logbook --delete-empty --dry-run qué borraría
+ claude-logbook --delete-empty borra las vacías
+ claude-logbook -D 101 -D e0a4300e borra sesiones puntuales
+ claude-logbook -p /tmp --delete-empty solo las vacías de ese proyecto
memoria de los proyectos (-m cambia de sesiones a memorias y reusa los mismos
verbos: filtro, -s para leer, -D para borrar):
- claude-sesiones -m tabla de memorias
- claude-sesiones -m docker busca en nombre, descripción y cuerpo
- claude-sesiones -m -s 3 lee la memoria nº 3
- claude-sesiones -m -s deadlock lo mismo, por nombre
- claude-sesiones -m --check audita índices, enlaces y orígenes
- claude-sesiones -m -D 3 la borra y la saca de MEMORY.md
+ claude-logbook -m tabla de memorias
+ claude-logbook -m docker busca en nombre, descripción y cuerpo
+ claude-logbook -m -s 3 lee la memoria nº 3
+ claude-logbook -m -s deadlock lo mismo, por nombre
+ claude-logbook -m --check audita índices, enlaces y orígenes
+ claude-logbook -m -D 3 la borra y la saca de MEMORY.md
"""
def build_parser():
ap = argparse.ArgumentParser(
- prog="claude-sesiones",
+ prog="claude-logbook",
description="Explorador de sesiones de Claude Code para la terminal.",
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog=textwrap.dedent(EPILOG),
@@ -116,7 +116,7 @@ def build_parser():
ap.add_argument("--no-cache", action="store_true",
help="ignora el caché y re-parsea todo")
ap.add_argument("--version", action="version",
- version=f"claude-sesiones {__version__}")
+ version=f"claude-logbook {__version__}")
return ap
diff --git a/claude_sesiones/memory.py b/claude_logbook/memory.py
index ccb2e65..ccb2e65 100644
--- a/claude_sesiones/memory.py
+++ b/claude_logbook/memory.py
diff --git a/claude_sesiones/sessions.py b/claude_logbook/sessions.py
index 0a00f8e..1ff48c0 100644
--- a/claude_sesiones/sessions.py
+++ b/claude_logbook/sessions.py
@@ -55,7 +55,7 @@ def default_root():
def default_cache_path():
base = os.environ.get("XDG_CACHE_HOME") or os.path.expanduser("~/.cache")
- return os.path.join(base, "claude-sesiones", "cache.json")
+ return os.path.join(base, "claude-logbook", "cache.json")
def session_path(s, root=None):
diff --git a/claude_sesiones/template.html b/claude_logbook/template.html
index e56cc30..7c8ba76 100644
--- a/claude_sesiones/template.html
+++ b/claude_logbook/template.html
@@ -1380,7 +1380,7 @@ document.querySelectorAll('.tab').forEach(t =>
// Sin memorias la pestaña no tiene nada que mostrar.
if (!MEM.length) document.querySelector('.tab[data-mode="m"]').hidden = true;
-$('#snap').textContent = `Instantánea leída el ${pad(NOW.getDate())} ${MES[NOW.getMonth()]} ${NOW.getFullYear()} a las ${fmtTime(NOW.toISOString())}. Las fechas relativas son respecto de ese momento; volvé a correr claude-sesiones --html para actualizarla.`;
+$('#snap').textContent = `Instantánea leída el ${pad(NOW.getDate())} ${MES[NOW.getMonth()]} ${NOW.getFullYear()} a las ${fmtTime(NOW.toISOString())}. Las fechas relativas son respecto de ese momento; volvé a correr claude-logbook --html para actualizarla.`;
[qEl, projEl, deepEl, emptyEl, typeEl, unlistedEl].forEach(
el => el.addEventListener(el === qEl ? 'input' : 'change', render));
diff --git a/claude_sesiones/terminal.py b/claude_logbook/terminal.py
index 9a16bec..1b56770 100644
--- a/claude_sesiones/terminal.py
+++ b/claude_logbook/terminal.py
@@ -334,7 +334,7 @@ def print_memory(m, st, out, path=None, width=None):
print(f"\n{st.faint}enlaces: {', '.join(m['ln'])}{st.reset}", file=out)
if m["src"]:
print(f"{st.faint}la creó la sesión {m['src'][:8]} "
- f"(claude-sesiones -s {m['src'][:8]}){st.reset}", file=out)
+ f"(claude-logbook -s {m['src'][:8]}){st.reset}", file=out)
def print_audit(report, st, out):
diff --git a/claude_sesiones/webpage.py b/claude_logbook/webpage.py
index c8550fe..c8550fe 100644
--- a/claude_sesiones/webpage.py
+++ b/claude_logbook/webpage.py
diff --git a/pyproject.toml b/pyproject.toml
index 26d7513..ff7fd2a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,14 +3,15 @@ requires = ["setuptools>=77"]
build-backend = "setuptools.build_meta"
[project]
-name = "claude-sesiones"
-description = "Explorador de las sesiones de Claude Code: tabla en la terminal y página HTML autocontenida."
+name = "claude-logbook"
+description = "Browse your Claude Code sessions and project memories: a terminal table and a self-contained HTML page."
readme = "README.md"
requires-python = ">=3.9"
license = "Apache-2.0"
license-files = ["LICENSE", "NOTICE"]
authors = [{ name = "Elvis Claros Castro" }]
-keywords = ["claude", "claude-code", "cli", "jsonl", "sessions", "transcripts"]
+keywords = ["claude", "claude-code", "cli", "jsonl", "sessions", "transcripts",
+ "memory", "logbook"]
dynamic = ["version"]
dependencies = []
@@ -25,17 +26,19 @@ classifiers = [
]
[project.urls]
-Homepage = "https://github.com/ElvisClaros/claude-sesiones"
-Issues = "https://github.com/ElvisClaros/claude-sesiones/issues"
+Homepage = "https://github.com/ElvisClaros/claude-logbook"
+Issues = "https://github.com/ElvisClaros/claude-logbook/issues"
[project.scripts]
-claude-sesiones = "claude_sesiones.cli:main"
+claude-logbook = "claude_logbook.cli:main"
+# El nombre viejo sigue andando, para no rehacer la memoria muscular.
+claude-sesiones = "claude_logbook.cli:main"
[tool.setuptools]
-packages = ["claude_sesiones"]
+packages = ["claude_logbook"]
[tool.setuptools.dynamic]
-version = { attr = "claude_sesiones.__version__" }
+version = { attr = "claude_logbook.__version__" }
[tool.setuptools.package-data]
-claude_sesiones = ["template.html"]
+claude_logbook = ["template.html"]
diff --git a/tests/test_cli.py b/tests/test_cli.py
index 94aeac1..94d472d 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -7,7 +7,7 @@ import unittest
import unittest.mock
from contextlib import redirect_stderr, redirect_stdout
-from claude_sesiones import cli
+from claude_logbook import cli
from .fixtures import (
memory_tree, simple_tree, ts, user, write_memory, write_session,
diff --git a/tests/test_memory.py b/tests/test_memory.py
index 4076718..6491c9b 100644
--- a/tests/test_memory.py
+++ b/tests/test_memory.py
@@ -2,7 +2,7 @@ import os
import tempfile
import unittest
-from claude_sesiones import memory, sessions
+from claude_logbook import memory, sessions
from .fixtures import (
memory_tree, simple_tree, write_index, write_memory,
diff --git a/tests/test_sessions.py b/tests/test_sessions.py
index 9522639..4c3d3a7 100644
--- a/tests/test_sessions.py
+++ b/tests/test_sessions.py
@@ -4,7 +4,7 @@ import tempfile
import unittest
import unittest.mock
-from claude_sesiones import sessions as S
+from claude_logbook import sessions as S
from .fixtures import ai_title, assistant, simple_tree, ts, user, write_session
diff --git a/tests/test_terminal.py b/tests/test_terminal.py
index 9f57935..6a91e8d 100644
--- a/tests/test_terminal.py
+++ b/tests/test_terminal.py
@@ -2,7 +2,7 @@ import io
import unittest
from datetime import datetime, timedelta, timezone
-from claude_sesiones import terminal as T
+from claude_logbook import terminal as T
NOW = datetime(2025, 8, 14, 12, 0, tzinfo=timezone.utc)
diff --git a/tests/test_webpage.py b/tests/test_webpage.py
index b768073..97abb91 100644
--- a/tests/test_webpage.py
+++ b/tests/test_webpage.py
@@ -4,7 +4,7 @@ import re
import tempfile
import unittest
-from claude_sesiones import webpage
+from claude_logbook import webpage
PAYLOAD_RE = re.compile(
r'<script id="payload" type="application/json">(.*?)</script>', re.S)