{"data":{"slug":"shreyaskarnik-distillama","name":"DistiLlama","tagline":"Chrome Extension for Summarizing and Chatting with Web Pages/Local Docs Using Local LLMs","github_url":"https://github.com/shreyaskarnik/DistiLlama","owner":"shreyaskarnik","repo":"DistiLlama","owner_avatar_url":"https://avatars.githubusercontent.com/u/311217?v=4","primary_language":"TypeScript","stars":304,"forks":32,"topics":["chrome-extension","langchain","llama2","llms","local-llm","mistral-7b","ollama","privacy-preserving-computing","private","readability","retrieval-augmented-generation","summarization","zephyr"],"archived":false,"github_pushed_at":"2024-09-02T23:50:12+00:00","maintenance_label":"Dormant","stars_delta_30d":0,"url":"https://www.graphcanon.com/tools/shreyaskarnik-distillama","markdown_url":"https://www.graphcanon.com/tools/shreyaskarnik-distillama.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/shreyaskarnik-distillama","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=shreyaskarnik-distillama","description":"Chrome Extension to Summarize or Chat with Web Pages/Local Documents Using locally running LLMs. Keep all of your data and conversations private. 🔐","homepage_url":null,"license":"MIT","open_issues":9,"watchers":5,"ai_summary":"A Chrome extension that allows users to summarize or have conversations with web pages and local documents using locally running language models, ensuring data privacy.","readme_excerpt":"# DistiLlama\n\n\n\n## What is DistiLlama?\n\nDistiLlama is a Chrome extension that leverages locally running LLM perform following  tasks.\n\n\n\nOne of the things that I was experimenting with is how to use a locally running LLM instance for various tasks and summarization (tl;dr) was on the top of my list. It was key to have all calls to LLM be local and all the data to stay private.\n\nThis project utilizes [Ollama](https://ollama.ai/) as the locally running LLM instance. Ollama is a great project that is easy to setup and use. I highly recommend checking it out.\n\nTo generate the summary I am using the following approach:\n\n- Grab the current active tab id\n- Use [Readability](https://github.com/mozilla/readability) to extract the text content from the page. In my experiments it was clear that the quality of the summary was much better when using Readability as it removed a lot of un-necessary content from the page.\n- Use [LangChain (LangChain.js)](https://js.langchain.com/docs/get_started/introduction/) to summarize the text content.\n- Display the summary in a popup window.\n\n## How to use DistiLlama?\n\n- Prerequisites:\n  - Install [Ollama](https://ollama.ai/download) you can also choose to run Ollama in a [Docker container](https://ollama.ai/blog/ollama-is-now-available-as-an-official-docker-image).\n  - Start Ollama using the following command: `OLLAMA_ORIGINS=* OLLAMA_HOST=127.0.0.1:11435 ollama serve`\n  - In another terminal you can run `ollama pull llama2:latest` or `ollama pull mistral:latest`\n  - Choice of model depends on your use case. Here are the models supported by Ollama <https://ollama.ai/library>\n  - Make sure you set OLLAMA_ORIGINS=* for the Ollama environment by following instructions [here](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-do-i-configure-ollama-server)\n\n- Clone this repo\n  - Install pnpm `npm install -g pnpm`\n  - run `pnpm install`\n  - run `pnpm dev`\n  - Open Chrome and navigate to `chrome://extensions/`\n    - Enable developer mode (if not already enabled)\n    - Click on `Load unpacked` and select the `dist` folder from the base of the cloned project.\n    - You should see the DistiLlama added to your Chrome extensions.\n    - You may want to pin the extension to your Chrome toolbar for easy access.\n\n## Demo\n\n### Chat with LLM\n\n\n\n### Chat with Documents (PDF)\n\n\n\n### Chat with Web Page\n\n\n\n### Summarization\n\n\n\n## TODOS\n\n- [ ] Make the summarization chain configurable\n- [x] Make LLM model configurable\n- [ ] Save summary in local storage\n- [ ] Improve the UI (not an expert in this area but will try to learn)\n- [ ] Add TTS support\n- [ ] Check out performance with different tuned prompts\n- [x] Extend to chat with the page (use embeddings and LLMs for RAG)\n- [x] Use [transformers.js](https://github.com/xenova/transformers.js) for local in browser embeddings and [Voy](https://github.com/tantaraio/voy) for the storage similar to this [Building LLM-Powered Web Apps with Client-Side Technology](https://ollama.ai/blog/building-llm-powered-web-apps)\n- [ ] Focus on improving the quality of the summarization and chat\n- [ ] Multimodal support\n\n## References and Inspiration\n\n- [LangChain](https://github.com/langchain-ai/langchainjs)\n- [Ollama](https://ollama.ai/)\n- [Building LLM-Powered Web Apps with Client-Side Technology](https://ollama.ai/blog/building-llm-powered-web-apps)\n- [Chrome Extension Template](https://github.com/Jonghakseo/chrome-extension-boilerplate-react-vite)\n- Artwork generated using [DALL·E 3](https://openai.com/dall-e-3)","github_created_at":"2023-10-26T04:34:12+00:00","created_at":"2026-07-15T10:59:56.869211+00:00","updated_at":"2026-09-20T05:03:53.204527+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"}],"tags":[{"slug":"chrome-extension","name":"chrome-extension"},{"slug":"langchain","name":"langchain"},{"slug":"llama2","name":"llama2"},{"slug":"local-llm","name":"local-llm"},{"slug":"privacy-preserving-computing","name":"privacy-preserving-computing"}],"trust":{"provenance":{"is_fork":false,"github_id":710127591,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-09-20T05:03:50.894Z","maintenance":{"label":"Dormant","score":18,"methodology":"github_public_v1","releases_90d":0,"days_since_push":747,"last_release_at":"2023-12-26T23:44:20Z","stars_delta_30d":0,"open_issues_delta_30d":0},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:59:58.210Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-09-20T05:03:51.941Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-09-20T05:03:51.941Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-09-20T05:03:51.941Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-09-20T05:03:51.941Z"}},"decision_facts":{"hosting":null,"pricing":{"model":"freemium","summary":"DistiLlama is free and open source software under the MIT license, however, users are responsible for maintaining and running their own local language models."},"requirements":null,"constraints":{"pricing_model":"freemium"},"when_to_use":["When you prioritize data privacy and prefer not to send sensitive information over the internet for processing.","In environments where there's an existing infrastructure for running local language models."],"when_not_to_use":["If your setup does not support the execution of local language models, as this is a prerequisite for using DistiLlama effectively.","When you require real-time interaction or access to cloud-based resources for more dynamic content generation since local LLMs may be limited by hardware performance."],"source":"enrich:decision_facts","observed_at":"2026-07-17T10:17:41.282Z"},"constraint_facets":{"pricing_model":"freemium"},"decision_summary":[{"label":"Pricing","value":"freemium - DistiLlama is free and open source software under the MIT license, however, users are responsible for maintaining and running their own local language models."},{"label":"Adopt for","value":"DistiLlama is a Chrome extension for summarizing and chatting with web pages and local documents using locally running language models to ensure data privacy."}]}}