[project] name = "seeklink" version = "0.7.0" description = "Local semantic search CLI and optional MCP stdio server for Markdown vaults. BM25 + vector + wikilink graph + metadata via RRF. Native CJK." readme = "README.md" license = "MIT" requires-python = ">=3.11" authors = [ { name = "Siyuan Sun" }, ] keywords = [ "semantic-search", "hybrid-search", "markdown", "obsidian", "knowledge-management", "pkm", "zettelkasten", "rag", "retrieval", "local-search", "markdown-search", "obsidian-search", "bm25", "vector-search", "local-rag", "sqlite-vec", "fts5", "cjk", "chinese", "jieba", "mlx", "apple-silicon", "local-first", "offline", "cli", "ai-agent", "agent-tools", "llm-tools", "llms-txt", "mcp", "mcp-server", "model-context-protocol", "claude-code", "cursor", "vscode", ] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", "Topic :: Text Processing :: Indexing", "Topic :: Database :: Database Engines/Servers", "Environment :: Console", "Operating System :: POSIX", "Operating System :: MacOS", "Operating System :: POSIX :: Linux", ] # The license is declared above as the SPDX expression `license = "MIT"`. # Do not add a `License :: OSI Approved :: MIT License` classifier here — # modern setuptools rejects the pair under PEP 639. dependencies = [ "fastembed>=0.7.4", "jieba>=0.42.1", "numpy>=1.26", "sqlite-vec>=0.1.6", "sqlitefts>=1.0.1", ] [project.optional-dependencies] mlx = [ "mlx-lm>=0.31.2; platform_system == 'Darwin' and platform_machine == 'arm64'", ] mcp = [ "mcp>=1.27,<2", ] [project.urls] Homepage = "https://github.com/simonsysun/seeklink" Repository = "https://github.com/simonsysun/seeklink" Issues = "https://github.com/simonsysun/seeklink/issues" Changelog = "https://github.com/simonsysun/seeklink/blob/main/CHANGELOG.md" [project.scripts] seeklink = "seeklink.__main__:main" [build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] include = ["seeklink*"] [dependency-groups] dev = [ "anyio>=4.12.1", "mcp>=1.27,<2", "mlx-lm>=0.31.2", "numpy>=2.4.2", "pytest>=9.0.2", "pytest-anyio>=0.0.0", "pytest-asyncio>=1.3.0", "pyyaml>=6.0", "sentence-transformers>=5.4.1", ]