Skip to main content

A quiet listening room for your thinking sessions with Claude

Project description

kissa

A jazz-kissa for thinking sessions — a TUI for managing Claude Code thinking conversations. It drives the friction between "a fleeting idea" and "a searchable note" down to zero.

Install

uv tool install kissa     # or: pipx install kissa
# not on PyPI yet? install from git:
uv tool install git+https://github.com/yiochou/kissa

Prerequisites: a logged-in Claude Code (credentials in ~/.claude are shared) or an ANTHROPIC_API_KEY in the environment. No Node.js needed — the SDK bundles the claude binary (which is why the install weighs in around 250 MB).

Run

kissa                     # open the TUI
kissa "some topic"        # quick capture: start a session directly
kissa --debug             # write debug logs to the log directory

Keybindings

Key Action
n New session (enter a topic → auto-sends the opening prompt)
b Branch the current session (fork, inherits full history)
e End (confirm, then sends the end instruction; approve the draft in the chat pane)
x Archive (guarded by end status and completion-signal tier)
q Quit (sessions persist and resume on next launch; see limitations below)

Completion Signal Protocol

Want to plug in your own instructions (e.g. a personal slash command)? Have it emit this on its own line once the note is saved:

[kissa:saved <absolute path to the note file>]

kissa uses this to confirm the note was saved (archiving proceeds directly and shows the path). It also works without it — archiving then falls back to a plain confirmation dialog. See the design doc for the full contract.

Note: the marker must be emitted within a single message, and the path must not contain ] — the marker is parsed per-message with a line-anchored regex.

Configuration

  • Profiles: profiles.yaml in the config directory (location is OS-dependent; override with KISSA_CONFIG_DIR)
  • State: state.json in the data directory (override with KISSA_STATE_DIR)
  • Default notes location: ~/Documents/kissa (change the instruction text in profiles.yaml)

Known Limitations

  • Chat transcripts are display-only and not persisted: after a restart the chat pane starts empty, though the underlying session still resumes with full context (planned for V2).
  • A dead session id isn't auto-flagged as stale; it only surfaces as an error on the next turn (you can archive it directly).
  • The n/b/e/x/q keys only work when the input box isn't focused (Tab switches focus).

Development

uv run pytest                          # unit + Pilot tests (no real SDK calls)
uv run ruff check . && uv run mypy src # lint + type check
uv run python scripts/smoke_sdk.py     # manual SDK integration check

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kissa-0.1.0.tar.gz (89.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kissa-0.1.0-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file kissa-0.1.0.tar.gz.

File metadata

  • Download URL: kissa-0.1.0.tar.gz
  • Upload date:
  • Size: 89.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kissa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c896a1291276788b544b9a965859a56d0e59313a080c7ffedd2cfa73a22f63d4
MD5 38903c82d93b2c391d87d351481f73cb
BLAKE2b-256 484397252759d19c1e55d7569cf35645d93fc41a856425ea45329b4c49fb9b4c

See more details on using hashes here.

File details

Details for the file kissa-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: kissa-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for kissa-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e9984d5e1633449f5fe0bc4856c60c288918720b9204d1fa4aca5746755fb0a
MD5 c212579f58763dfe84047d6d835ac0e6
BLAKE2b-256 b4a89a0e1d07e9ed1aff2dee79689e7c0b095232e7559ea1eb5922bd4d64c29a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page