{"id":30190108,"url":"https://github.com/jlevy/superanalyze","last_synced_at":"2025-08-12T19:10:23.664Z","repository":{"id":309278685,"uuid":"1035644979","full_name":"jlevy/superanalyze","owner":"jlevy","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-11T00:38:19.000Z","size":232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-11T01:14:28.108Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jlevy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-10T20:49:25.000Z","updated_at":"2025-08-11T00:38:22.000Z","dependencies_parsed_at":"2025-08-11T01:14:37.070Z","dependency_job_id":"6eeade1a-aaff-48ca-b941-cf2e35049b75","html_url":"https://github.com/jlevy/superanalyze","commit_stats":null,"previous_names":["jlevy/superanalyze"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jlevy/superanalyze","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlevy%2Fsuperanalyze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlevy%2Fsuperanalyze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlevy%2Fsuperanalyze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlevy%2Fsuperanalyze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlevy","download_url":"https://codeload.github.com/jlevy/superanalyze/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlevy%2Fsuperanalyze/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270119602,"owners_count":24530488,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-12T19:10:14.765Z","updated_at":"2025-08-12T19:10:23.640Z","avatar_url":"https://github.com/jlevy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# superanalyze\n\nAnalyze claims, rigor, and evidence in a doc.\n\n## Motivation\n\nWe are now inundated with more content than ever in text form.\nAnd it is even harder to tell what to trust.\n\nSay you have a document that makes an argument or claim.\nIt might be a deep research report.\nOr it might be a transcript of a talk, or anything else where someone makes claims or\ntakes a stance on a topic.\n\nSuperanalyze provides deep analysis of long documents, making it possible to break down\nAI or human-written reports or transcripts systematically, to evaluate claims, rigor,\nand evidence.\n\n## Approach\n\nSuperanalyze is an experiment at building a this kind of tool.\nIt uses a sequence of LLM prompts (and some embeddings) to analyze:\n\n- What are the key claims\n\n- What parts of the document relate to those claims (this is done by paragraph)\n\n- Researching related content using a thinking LLM with web search, and inserting\n  annotations on each\n\n- Evaluating the rigor of the claims and if the evidence supports it\n\n- Visualizing these in the document in a way that lets you drill down and see the\n  assessments and whether you believe them\n\nThe design is based on three key beliefs:\n\n1. **Automatic, easier deep analysis:** While establishing absolute truth of statements\n   is very hard, there *are *many statements are arguments that are easy to evaluate for\n   rigor or evidence or counter-arguments, and this is the kind of thing that should be\n   done automatically and easily within tools.\n\n2. **Using a consistent structure and clear rubrics:** Just asking an AI tool to\n   evaluate the strength or rigor of arguments can help, but it’s not consistent and\n   it’s different for every person and every prompt.\n   We need systematic analyses that break down the process of analyzing a document into\n   key steps that can be verified and each run fairly reliably.\n   Rubrics (like 1-to-4 scores on clarity or depth, for example) can help with this.\n\n3. **Exposing full details to the reader:** The only way to share this is to give the\n   reader both an overview of the assessment and an ability to drill down into the\n   document and its sources.\n\n## How It Works\n\nThis is built on [kash](https://www.github.com/jlevy/kash) and its\n[kash-docs](https://www.github.com/jlevy/kash-docs) kit of tools for docs and analysis.\n\nIt’s a good use case for this framework as it has lots of actions that do individual\nportions like summarizing, chunking, handling footnotes, etc, but none had been stitched\ntogether properly for a deeper analysis of document claims.\n\nThis has let us convert PDFs and transcribe YouTube videos and then analyze them as\nclean Markdown with annotations.\n\n## Status\n\nNew!\n\nWe’re still experimenting with UI on visualizing them, but it seems promising.\n\nFactuality is a tough thing to measure, but we now have partial support for crawling all\nlinked resources and analyzing strength of evidence.\nThis part isn’t fully done yet but will be soon.\n\n## Usage\n\n### Key Setup\n\nSee the `env.template` to set up keys (default model is OpenAI).\n\n### Basic Usage\n\nIt should work on most file types, including text, HTML, and PDF.\n\n```bash\nuv run superanalyze somefile.pdf\n```\n\n## MCP Server\n\nRun as an MCP server for integration with other tools.\nOnce it is in your path:\n\n```bash\n# Run as stdio MCP server\nsuperanalyze --mcp\n\n# Run as SSE MCP server at 127.0.0.1:4440\nsuperanalyze --sse\n\n# View MCP server logs\nsuperanalyze --logs\n```\n\nNote: Both `--sse` and `--logs` automatically enable MCP mode, so you don’t need to\nspecify `--mcp` explicitly.\n\n### Claude Desktop Configuration\n\nFor Claude Desktop, a config like this should work (adjusted to use your appropriate\nhome folder):\n\n```json\n{\n  \"mcpServers\": {\n    \"superanalyze\": {\n      \"command\": \"/Users/levy/.local/bin/superanalyze\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n```\n\n## Project Docs\n\nFor how to install uv and Python, see [installation.md](installation.md).\n\nFor development workflows, see [development.md](development.md).\n\nFor instructions on publishing to PyPI, see [publishing.md](publishing.md).\n\n* * *\n\n*This project was built from\n[simple-modern-uv](https://github.com/jlevy/simple-modern-uv).*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlevy%2Fsuperanalyze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlevy%2Fsuperanalyze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlevy%2Fsuperanalyze/lists"}