Skip to main content

Decision logging for AI-assisted development - automatic tracking, git integration, and context for AI agents

Project description

logmind

PyPI Python versions CI skills.sh License: MIT

AI decision logging for development projects — branch-aware by default.

Why logmind

Codebases lose the why behind their code faster than the what. logmind captures architectural and implementation decisions as you make them, attaches them to the relevant git branch, and surfaces them to the next human or AI that works in the repo. One CLI command per decision; the package handles the docs, the branch routing, and the merge-time aggregation.

Key concept: Install once, init anywhere, log everything. Feature branches get their own decision file; on PR merge a GitHub Action appends a one-line summary to docs/decisions.md linking the PR + the branch detail. AGENTS.md is the canonical agent-instruction file; per-tool files (CLAUDE.md, .cursorrules, ...) are 2-line stubs pointing to it.

Installation

# Using pipx (recommended)
pipx install logmind

# Using Homebrew (macOS/Linux)
brew tap thrillmot/logmind
brew install logmind

# Using pip
pip install logmind

Quick Start

# If installed via pipx/brew, it's already available globally

# Initialize in your project
cd your-project
logmind init

# Log decisions - Python API
from logmind import log
log("Chose FastAPI over Flask",
    reasoning="Need async/await for WebSocket handling")

# Or use CLI
logmind log "Use PostgreSQL for database" \
  -r "Need ACID compliance" \
  -a "MongoDB" -a "SQLite"

# View and search decisions
logmind show
logmind search "postgres"

# Log with a built-in template (pre-fills reasoning, alternatives, implications)
logmind log --template database "Use PostgreSQL"
logmind templates   # list all available templates

# Analytics and stats
logmind stats
logmind stats --months 6

# Aggregate decisions across multiple projects
logmind aggregate ~/projects/api ~/projects/frontend
logmind aggregate --summary ~/work/*/

# Enforce decision logging with a pre-commit hook
logmind install-hook          # installs .git/hooks/pre-commit
logmind check-decisions       # run manually or in CI

# Manage AI agents
logmind agents list
logmind agents add windsurf

# View and modify configuration
logmind config list
logmind config get git.auto_push
logmind config set git.auto_push false

# Upgrade logmind
logmind update

# Auto-log with decorators
from logmind import log_decision, log_choice

@log_decision(
    decision="Authenticate user with {method}",
    reasoning="Security checkpoint"
)
def authenticate(method="oauth"):
    # Your auth code
    return True

@log_choice(
    choices={
        "redis": "Use Redis for caching",
        "memory": "Use in-memory caching",
    }
)
def select_cache():
    return "redis" if is_production() else "memory"

Contributing / Development Setup

Working on logmind itself? Set it up like any CLI tool:

# Clone the repo
git clone https://github.com/thrillmot/logmind.git
cd logmind

# Install globally in editable mode (like npm, git, docker)
pipx install -e .

# Now just use it!
logmind log "Add new feature" -r "Reasoning here"
logmind show
logmind search "keyword"

# Run tests
python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
pytest

Why pipx? logmind is a CLI tool, not a library. It should be globally available like git or npm.

Framework Integrations

# LangChain — auto-log agent decisions (pip install logmind[langchain])
from logmind.integrations import LangChainLogger

chain = LLMChain(llm=llm, callbacks=[LangChainLogger()])

# Custom framework — subclass BaseIntegration
from logmind.integrations.base import BaseIntegration

class MyLogger(BaseIntegration):
    def on_decision(self, output):
        self.log(f"Chose: {output}", reasoning="My framework decided")

See docs/custom-integrations.md for patterns, examples, and publishing guide.

Documentation

How It Works

  1. Install logmind as a package
  2. Init creates docs/ folder and inserts instructions into CLAUDE.md (preserving existing content)
  3. Log a decision - appends, archives old ones (keeps 20 recent), regenerates tree, commits, and pushes
  4. Context AI agents read the 20 most recent decisions and current file structure

Why logmind?

  • Simple: Two markdown files (recent + archive), no database
  • Focused: Only 20 most recent decisions for relevant AI context
  • Git-native: Every decision is a commit, git history is your audit trail
  • AI-friendly: Recent decisions + file structure = complete context
  • Automatic: Commits and pushes on every log

See docs/plan.md for complete architecture and roadmap.

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

logmind-0.1.2.tar.gz (91.2 kB view details)

Uploaded Source

Built Distribution

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

logmind-0.1.2-py3-none-any.whl (63.5 kB view details)

Uploaded Python 3

File details

Details for the file logmind-0.1.2.tar.gz.

File metadata

  • Download URL: logmind-0.1.2.tar.gz
  • Upload date:
  • Size: 91.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for logmind-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9c59880fcea6f5c6ba701fbc7331ee485a34ec4c7dcc09b79c48d16eca2919c8
MD5 e3822a113974366809373e98e22c76eb
BLAKE2b-256 db3d99165b0b04c74eff4c1a496a6aef2bb62c3e51e452566ef32d950973d14d

See more details on using hashes here.

Provenance

The following attestation bundles were made for logmind-0.1.2.tar.gz:

Publisher: publish.yml on thrillmot/logmind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file logmind-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: logmind-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 63.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for logmind-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d1bafca5a19a68bbd10fb79126413dfda07b7428aab3e5f62497e820f22bd267
MD5 cf70998b86f4671f2f7b33c2b643ae8b
BLAKE2b-256 6486050acb9fb26a998e387b547d97a26bf6a49b1315234f43cfd9b30dde4b34

See more details on using hashes here.

Provenance

The following attestation bundles were made for logmind-0.1.2-py3-none-any.whl:

Publisher: publish.yml on thrillmot/logmind

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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