{"adoption": {"forks": 142, "observed_at": "2026-08-28T04:05:45.100167+00:00", "stars": 1858}, "canonical_url": "https://ross.abutalabs.com/products/semtools", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Semantic search and document parsing tools for the command line", "domain": ["artificial-intelligence", "files", "pdf", "developer-tools"], "enriched": true, "function": ["search-engine", "parser", "pdf", "rag", "agent-framework", "cli"], "health_score": 81, "homepage": null, "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["run-llama/semtools"], "name": "run-llama/semtools", "platform": ["cross-platform", "cli", "windows", "rust"], "pushed_at": "2026-03-11T14:30:50+00:00", "repo": "run-llama/semtools", "stars": 1858, "tags": ["semantic-search", "embeddings", "document-parsing", "model2vec", "llamaparse", "llamaindex", "multilingual-embeddings", "unix-tools", "document-qa", "markdown-conversion", "search", "natural-language-processing", "command-line", "linux", "macos"], "topics": ["cli", "embeddings", "parser", "rust", "search", "semantic", "semantic-search", "static-embedding"], "urls": [], "use_cases": ["parse pdfs and docx files to markdown from the command line", "run semantic search over local text files", "search documents by meaning instead of exact keywords like grep", "ask an LLM questions about a folder of documents", "bulk convert presentations and documents into markdown", "pipe parsed documents into search or an agent with unix tools", "set up local retrieval over a large document collection"], "what_it_is": "SemTools is a Rust command-line toolkit for parsing documents (PDF, DOCX, PPTX, etc.) into markdown via LlamaParse and running fast local semantic search over text using multilingual model2vec embeddings with cosine similarity. It also ships an 'ask' command, an AI agent with search/read tools for answering questions over document collections via OpenAI-compatible APIs, plus workspace management for large collections.", "when_to_avoid": ["you need fully offline parsing, since the default parse backend requires a LlamaParse API key", "you need a GUI, a hosted search service, or a web interface rather than a command-line tool", "you only need exact keyword matching, where grep is sufficient", "you cannot use OpenAI or an OpenAI-compatible API, since the ask command depends on it"], "when_to_choose": ["you want a fast, Unix-friendly CLI for document parsing and semantic search without running a server", "you need local semantic search using embeddings while keeping parsing delegated to LlamaParse", "you want to build quick RAG-style question answering over local document collections", "you already use the LlamaIndex/LlamaParse ecosystem and want terminal tooling"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/semtools", "repo": "run-llama/semtools", "role": "main", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:45.100167+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:16:13.272414+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "376784ec2862d90843e6c5f24f822015e6bb3ba73ed9d4e7f302a1b989ba2f77", "fetched_at": "2026-08-28T04:05:45.100167+00:00", "kind": "readme", "missing": false, "url": "https://github.com/run-llama/semtools"}, {"content_hash": "06e1867701a7fe45c441ab1c256868dd95ed8775a8107d4130f565c1f0fd1afe", "fetched_at": "2026-08-29T10:55:12.237389+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/semtools"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 71, "longevity": 26, "rhythm": 74}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 375, "days_push": 175, "days_rel": 175, "gap_med": 3.0, "n_releases_24m": 17}, "score": 63, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}