[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "claude-handoff" version = "0.20.0" description = "Summarize & export a Claude Code session into one clean handoff.md for Gemini, GPT, or another Claude." readme = "README.md" license = { text = "MIT" } authors = [{ name = "Vasilispapg" }] requires-python = ">=3.9" keywords = ["claude", "claude-code", "export", "handoff", "llm", "transcript"] classifiers = [ "Environment :: Console", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Utilities", ] [project.urls] Homepage = "https://github.com/Vasilispapg/claude-handoff" [project.scripts] claude-handoff = "claude_handoff:main" chf = "claude_handoff:main" [tool.setuptools] packages = ["claude_handoff"] [tool.ruff.lint] # E/F/I/PLW/RUF are enforced. SIM, ISC and DTZ stay off: they flag the # codebase's established idiom (adjacent f-strings for line wrapping, # guard-comment nested ifs, local-time mtimes in listings). select = ["E4", "E7", "E9", "F", "I", "PLW", "RUF"] # PLW2901: `line = line.strip()` is an established idiom here. # RUF001: fixtures and tests are deliberately Greek-language. ignore = ["PLW2901", "RUF001"]