Cogitus
Cogitus — a fast, searchable terminal workspace for capturing and evolving programming ideas.
Cogitus is a Python-based TUI (Terminal User Interface) built with Textual. It is designed specifically for developers who want a structured, keyboard-driven way to capture, explore, and refine programming ideas without leaving the terminal. This is not a generic note-taking app and not a task manager. Cogitus is focused on structured idea capture, iteration, and discovery.
Goals
- Fast, local-first idea capture
- Fully keyboard-driven workflow
- Searchable and structured storage
- Minimal, distraction-free UI
- Designed specifically for programming and technical concepts
Core Concepts
Cogitus treats ideas as structured entities rather than loose notes. Each idea can include:
- Title
- Body/description (Markdown-friendly text - edit in markdown, display rendered
using
Textual/Richnative functionality) - Tags
- Group (ideas are organized under groups in the left tree view)
- Timestamps (created/updated)
Future versions may introduce:
- Idea linking (relationships between ideas)
- Graph views
- Scoring or priority signals
- AI-assisted idea expansion
Architecture
- UI: Built with
Textual - Database: SQLite (local file, WAL mode)
- Data Access:
sqliter-py - Package Management:
uv
The project intentionally separates:
TextualUI layer (screens and widgets)- Repository/service layer for database access
- Schema and migration management
Cogitus is also a real-world validation project for sqliter-py.
Current Functionality
Functionality available in the current release:
- Create, edit, rename, and delete ideas
- Organize ideas in groups, including create/rename/delete flows and bulk reassignment on group delete
- Browse ideas in a grouped tree view
- Tag ideas
- Advanced search with SQLite FTS5 text search plus inline operators (
tag:,group:,and,or) - Rendered Markdown detail view with tags and timestamps
- Copy & Paste support
- CLI commands for scripting (
list,export,delete) - Optional FastAPI server for standalone access to ideas, groups, and tags
- Optional MCP server for read-only tool access from MCP clients
- Remote mode so a Cogitus TUI can use a Cogitus API server instead of a local SQLite database
Target Users
- Solo developers
- Indie hackers
- Open-source maintainers
- Engineers who think in terminals
If you sketch ideas in README files, TODO lists, or scattered Markdown files across projects, Cogitus aims to centralize that thinking into a structured, searchable workspace.
Installation
The recommended way to install this is as a global tool, either using uv
(best) or pipx:
uv tool install cogitus
You can always install globally using pip if you don't want to use any of
those 2 tools:
pip install cogitus
Usage
cogitus
Key Shortcuts (Main Screen)
n: New ideae: Edit selected idear: Rename selected idea or groupd: Delete selected ideag: New groupShift+G: Delete selected group/: Focus searchy: Copy selected idea body?: Show helpq: Quit
Clipboard Support
Cogitus uses two clipboard strategies for maximum compatibility:
- OSC 52 (primary) — works in most modern terminals (Ghostty, iTerm2, Kitty, Alacritty, WezTerm, Windows Terminal) and through tmux/SSH
- pyperclip (fallback) — uses system tools like
xclip,xsel, orpbcopyfor terminals that don't support OSC 52 (e.g. Gnome Terminal, macOS Terminal)
tmux users: You need set-clipboard enabled in your ~/.tmux.conf for
OSC 52 to pass through:
set -g set-clipboard on
Linux users without OSC 52 support: Install xclip or xsel for the
pyperclip fallback to work:
sudo apt-get install xclip # Debian/Ubuntu
sudo pacman -S xclip # Arch
sudo dnf install xclip # Fedora
y copy is context-sensitive: In the editor, y copies the current
selection. In rendered Markdown view, y copies selected text when detected;
otherwise it copies the full idea body. In some terminals/cases, Textual may
not detect rendered-view selection and will fall back to full-body copy.
Development
This project uses:
uvfor dependency and environment management- SQLite for local storage
- Textual for UI
- Standard formatting and linting tools defined in the repository
License
Cogitus is licensed under the MIT License. See LICENSE.txt.
Metadata
Release files for cogitus 0.12.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cogitus-0.12.0.tar.gz | 98.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cogitus-0.12.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 231.6 kB
Release files / cogitus-0.12.0.tar.gz
| Download URL | cogitus-0.12.0.tar.gz |
|---|---|
| Size | 98.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e3b8c154c5c83d1690d5ccb8693d429328b8369ad9bdc059295f7bb0bf4088b
|
|
BLAKE2b-256 checksum How to use checksums |
a1233b30c631387cb9d29d4c26abc1bde8690d992181329be3ba43fce3e99c78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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":null}
|
Release files / cogitus-0.12.0-py3-none-any.whl
| Download URL | cogitus-0.12.0-py3-none-any.whl |
|---|---|
| Size | 132.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef79cde6994a0374c637d51b7568f8913d02794c179708db77fff3ec986b1dab
|
|
BLAKE2b-256 checksum How to use checksums |
c371944dd70ab9a05ac85dadf26665377e2d0cfeee1bc6ea17f82dae76e70b9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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":null}
|
Security for cogitus 0.12.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.