{"id":26519126,"url":"https://github.com/pluja/llm-language-tool","last_synced_at":"2025-03-21T10:18:19.277Z","repository":{"id":270331691,"uuid":"910015914","full_name":"pluja/llm-language-tool","owner":"pluja","description":"Use LLMs to enhance, translate and correct your texts","archived":false,"fork":false,"pushed_at":"2025-02-24T11:19:10.000Z","size":417,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T12:29:53.600Z","etag":null,"topics":["ai","llm","openai","text","tool","translate"],"latest_commit_sha":null,"homepage":"https://langtool.pluja.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pluja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-12-30T09:35:31.000Z","updated_at":"2025-02-24T11:19:14.000Z","dependencies_parsed_at":"2024-12-31T23:17:40.073Z","dependency_job_id":null,"html_url":"https://github.com/pluja/llm-language-tool","commit_stats":null,"previous_names":["pluja/llm-language-tool"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluja%2Fllm-language-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluja%2Fllm-language-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluja%2Fllm-language-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluja%2Fllm-language-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pluja","download_url":"https://codeload.github.com/pluja/llm-language-tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244776346,"owners_count":20508507,"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","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":["ai","llm","openai","text","tool","translate"],"created_at":"2025-03-21T10:18:18.598Z","updated_at":"2025-03-21T10:18:19.271Z","avatar_url":"https://github.com/pluja.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLM Language Tool 🌐\n\nA lightweight, browser-based text processing tool powered by Large Language Models (LLMs). Process, translate, and analyze text directly in your browser without any backend or server dependencies.\n\n### [Click here](https://langtool.pluja.dev/#share=7a0ce61b4da5623e767197d85ac44ac8@https%3A%2F%2Fpocketjson.pluja.dev?share) to see an example translation of [this blog post](https://blog.kycnot.me/p/kyc-no-thanks) to French.\n\n## 🚀 Try it out!\n\nVisit the public instance hosted on Cloudflare Pages:\n\n[https://langtool.pluja.dev](https://langtool.pluja.dev)\n\nAdd your API Key for an OpenAI-compatible API (ollama, ppq.ai, nano-gpt.com, llama.cpp, openai...)\n\n![Screenshot of the User Interface](icons/screenshot.png)\n\n## ✨ Features\n\n- **Text Processing**\n  - Process text directly from input or fetch from URLs\n  - Translation between multiple languages\n  - Text summarization and correction\n  - Translation explanations and summaries\n\n- **Privacy \u0026 Flexibility**\n  - 100% client-side processing\n  - Configure your own LLM endpoints and API keys\n  - Data Privacy \u0026 Security:\n    - All operations occur client-side - your API keys and queries never leave your browser\n    - Queries are sent directly to your preferred LLM provider (supports self-hosted models with openai-compatible backends)\n    - Sharing functionality uses [PocketJSON](https://pocketjson.pluja.dev) (optional, can be self-hosted)\n\n- **Sharing**\n  - Share your results with a clean, distraction-free view\n    - Generate shareable URLs for your processed content\n    - Recipients see a simplified interface without tooling\n    - Easy switch between simple view and full application\n    - Base64 encoded content for sharing\n  - Share configurations across devices via URL\n    - Share language preferences and API configurations\n    - Export/Import settings using a URL\n    - Base64 encoded settings for secure sharing\n\n- **Developer Friendly**\n  - Pure JavaScript and HTML implementation\n  - Zero runtime dependencies\n  - Modern UI with Tailwind CSS\n  - URL parameter support for automation\n\n\n## Self-Hosting / Local Development\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/pluja/llm-language-tool.git\n   ```\n\n2. Navigate to the project directory:\n   ```bash\n   cd llm-language-tool\n   ```\n\n3. Start a local server:\n   ```bash\n   # Using Python (recommended)\n   python3 -m http.server 8000\n\n   # Or Using Docker\n   docker run --rm -p 8000:8000 -v $(pwd):/srv --workdir /srv python:3-alpine python -m http.server 8000 --bind 0.0.0.0\n\n   # Or Using Docker-Compose\n   docker compose up -d\n   ```\n\n4. Open your browser and visit `http://localhost:8000`\n\n## 🔧 Configuration\n\nThe tool supports various configuration options through the UI:\n- LLM endpoint configuration\n- API key management\n- Language model\n- Language preferences\n- UI customization\n\n### Sharing Settings\n\nYou can easily share your configuration with other devices or users:\n\n1. Click the Settings button (⚙️)\n2. Click \"Share Settings\" in the modal\n3. A URL containing your encoded settings will be copied to your clipboard\n4. Share this URL or save it for later use\n5. When opened, the URL will automatically import all settings you configured\n\nThe shared configuration includes:\n- API endpoint\n- API key\n- Model ID\n- Custom language list\n\n### Sharing Results\n\nShare your processed content with others:\n\n1. Process any text using the available tools\n2. Click the \"Share\" button on the result\n3. A URL will be copied to your clipboard\n4. Recipients will see a clean, simplified view of the content\n5. They can access the full application via the \"View Full App\" button\n\n## 🔍 URL Parameters\n\nAutomate tasks using URL parameters:\n\n```\nhttps://langtool.pluja.dev?content=https://example.com\u0026task=translate\u0026output=spanish\n```\n\nSupported parameters:\n- `content`: Text or URL to process\n- `task`: Operation to perform (`translate` or `summarize`)\n- `output`: Target language, only used with `translate` task\n- `config`: Base64 encoded configuration (automatically generated via Share Settings)\n- `#\u003cbase64-content\u003e?share`: Share view with encoded content (automatically generated via Share button)\n\n## 🛠️ Technical Stack\n\n- **Frontend**: Vanilla JavaScript and HTML\n- **Styling**: Tailwind CSS with plugins\n\n## 👥 Contributing\n\nContributions are welcome! This project was initially created with the help of LLMs and has room for improvements and new features.\n\nTo contribute:\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Open a Pull Request\n\n## 💡 Inspiration\n\nThis project draws inspiration from:\n- [Kagi Translate](https://translate.kagi.com)\n- [Jina AI](https://r.jina.ai)\n\n## 📄 License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluja%2Fllm-language-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpluja%2Fllm-language-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluja%2Fllm-language-tool/lists"}