[project] name = "substack-ops" version = "0.3.5" description = "Standalone Substack CLI + 26-tool MCP server. Your IDE drafts the replies. Zero AI API keys." readme = "README.md" authors = [ { name = "Ketan Chavan", email = "ketan.chavan.test@gmail.com" } ] requires-python = ">=3.12" dependencies = [ "typer>=0.12.0", "rich>=13.7.0", "httpx>=0.27.0", "pyyaml>=6.0", "python-dotenv>=1.0.0", "markdownify>=0.13.1", ] [project.optional-dependencies] tui = [ "textual>=0.80.0", ] mcp = [ "mcp>=1.0.0", ] chrome = [ "pycryptodome>=3.20.0", "keyring>=25.0.0", ] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", "responses>=0.25", "ruff>=0.6.0", ] [project.scripts] substack-ops = "substack_ops.cli:app" [build-system] requires = ["uv_build>=0.10.12,<0.11.0"] build-backend = "uv_build" [tool.ruff] line-length = 100 target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "B", "UP"] [dependency-groups] dev = [ "pytest>=9.0.3", "responses>=0.26.0", ]