{"id":50767619,"url":"https://github.com/vulcangz/gta","last_synced_at":"2026-06-11T15:02:09.534Z","repository":{"id":360411977,"uuid":"1249763617","full_name":"vulcangz/gta","owner":"vulcangz","description":"A desktop translation assistant app based on a locally deployed Gemma 4 model. It operates in a server-client architecture and supports LAN access. No Ollama required.","archived":false,"fork":false,"pushed_at":"2026-06-08T09:37:03.000Z","size":363,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T11:23:42.272Z","etag":null,"topics":["fyne","gemma4","golang","grpc","kronk","translator"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vulcangz.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-26T02:42:57.000Z","updated_at":"2026-06-08T09:37:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vulcangz/gta","commit_stats":null,"previous_names":["vulcangz/gta"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vulcangz/gta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcangz%2Fgta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcangz%2Fgta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcangz%2Fgta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcangz%2Fgta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vulcangz","download_url":"https://codeload.github.com/vulcangz/gta/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcangz%2Fgta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34204197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"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":["fyne","gemma4","golang","grpc","kronk","translator"],"created_at":"2026-06-11T15:02:08.793Z","updated_at":"2026-06-11T15:02:09.528Z","avatar_url":"https://github.com/vulcangz.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gemma4-powered Translation Assistant (WIP)\n\n[简体中文](README_zh-CN.md)\n\nGTA is a free, open-source desktop translation assistant tool. It loads and runs the Gemma 4 model server via [Kronk](https://github.com/ardanlabs/kronk), operates in a server-client mode, and supports access and use by users on a local area network. The tool is written in Go, and its user interface utilizes the [Fyne framework](https://github.com/fyne-io/fyne). It supports cross-platform use and offers full hardware acceleration (implemented via Kronk). It runs entirely on your local device (no internet connection is required once the LLM model has been downloaded).\n\n## Why?\n\n1) Professionalism. A long time ago, Google Translate was the most commonly used translation tool. After Gemma 4 was released, I tested its translation capabilities right away, and sure enough, it remained as professional as ever! Unlike in the past, you can now even see the translation’s thought process.\n2) Flexible local deployment. Gemma 4 has certain hardware requirements. For SOHO users, you can use a high-spec computer to host a more powerful model—such as the 26B (MoE, with 4B activated) or 31B (dense) version—as a server, while other devices access it via client mode.\nOf course, you can also deploy it on your own computer for personal use.\n3) Privacy-focused. By deploying large models locally without using Ollama or a browser, you eliminate intermediaries, improve processing efficiency, and protect privacy and data security.\n4) Scalability. Future implementations can support other Gemma 4 features such as image text extraction, article writing, or summarization.\n\n## Getting Started\n\n### System Requirements:\n\nFor reference: [Gemma 4 Hardware requirements on unsloth](https://unsloth.ai/docs/models/gemma-4#hardware-requirements)\n\nTable: Gemma 4 Inference GGUF recommended hardware requirements (units = total memory: RAM + VRAM, or unified memory). You can use Gemma 4 on MacOS, NVIDIA RTX GPUs etc.\n\n| Gemma 4 variant  |        4-bit       |         8-bit      |      BF16 / FP16   |            \n|------------------|--------------------|--------------------|--------------------|\n| E2B              |               4 GB |             5–8 GB |             10 GB  |\n| E4B              |           5.5–6 GB |            9–12 GB |             16 GB  |\n| 26B A4B          |           16–18 GB |           28–30 GB |             52 GB  |\n| 31B              |           17–20 GB |           34–38 GB |             62 GB  |\n\n- default config model is gemma-4-E2B-it-Q4_K_M.gguf. \n- 8GB of RAM (GPU) or 16GB of RAM (CPU)\n\n\n## Building from source\n\n### Prerequisites\n\nUsing the Fyne toolkit to build cross platform applications.\n\n#### Windows\nPlease follow the Getting Started guide from the Fyne documentation [here](https://docs.fyne.io/started/) to setup MSYS2 and compile from within the MingW-w64 window.\n\n#### MacOS\nSet up the Xcode command line tools by opening a Terminal window and typing the following:\n\n`xcode-select --install`\n\n#### Linux\nFind the list of dependencies for your distro in the Fyne documentation [here](https://docs.fyne.io/started/)\n\n### Build\n\nTo build the project run the following command:\n```bash\ngit clone https://github.com/vulcangz/gta.git\ncd gta\ngo build\n```\n\n## Usage\n\nUsing Windows as an example.\n\nWhen the client and server are running on the same computer:\n\n1. Run the GTA service in a terminal window: gta or gta serve \n2. Run the desktop client in another terminal window: gta gui\n3. You can then perform translation tasks in the open window\n\nWhen the client and server are not running on the same computer:\n\n1. Run the GTA service in a terminal window on the server: `gta` or `gta serve`\n2. On the client computer, first set the environment variables related to the gRPC service, then run the desktop client in a terminal window: `gta gui`\n\n```bash\nset GTA_GRPC_HOST=your server ip\nset GTA_GRPC_PORT=your server port\ngta gui\n```\n3. You can then perform the translation in the window that opens.\n\nThe complete list of command-line options and environment variables is as follows:\n\n```bash\ngta -h\nUsage: gta [options...] [arguments...]\n\nOPTIONS\n      --app-name                 \u003cstring\u003e              (default: GTA)\n      --grpc-host                \u003cstring\u003e              (default: 0.0.0.0)\n      --grpc-port                \u003cint\u003e                 (default: 9000)\n  -h, --help                                                                                                                                              display this help message\n      --log-level                \u003cstring\u003e\n      --model-max-tokens         \u003cint\u003e                 (default: 2048)\n      --model-temperature        \u003cfloat\u003e               (default: 0.7)\n      --model-top-k              \u003cint\u003e                 (default: 40)\n      --model-top-p              \u003cfloat\u003e               (default: 0.9)\n      --model-url                \u003cstring\u003e              (default: https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF/blob/main/gemma-4-E2B-it-Q4_K_M.gguf)\n      --translation-input-delay  \u003cstring\u003e              (default: 300)\n      --translation-languages    \u003cstring\u003e,[string...]  (default: English;中文;Français;Italiano;日本語;한국어;Deutsch;繁體中文)\n      --translation-source       \u003cstring\u003e              (default: English)\n      --translation-target       \u003cstring\u003e              (default: 中文)\n  -v, --version                                                                                                                                           display version\n\nENVIRONMENT\n  GTA_APP_NAME                 \u003cstring\u003e              (default: GTA)\n  GTA_GRPC_HOST                \u003cstring\u003e              (default: 0.0.0.0)\n  GTA_GRPC_PORT                \u003cint\u003e                 (default: 9000)\n  GTA_LOG_LEVEL                \u003cstring\u003e\n  GTA_MODEL_MAX_TOKENS         \u003cint\u003e                 (default: 2048)\n  GTA_MODEL_TEMPERATURE        \u003cfloat\u003e               (default: 0.7)\n  GTA_MODEL_TOP_K              \u003cint\u003e                 (default: 40)\n  GTA_MODEL_TOP_P              \u003cfloat\u003e               (default: 0.9)\n  GTA_MODEL_URL                \u003cstring\u003e              (default: https://huggingface.co/unsloth/gemma-4-E2B-it-GGUF/blob/main/gemma-4-E2B-it-Q4_K_M.gguf)\n  GTA_TRANSLATION_INPUT_DELAY  \u003cstring\u003e              (default: 300)\n  GTA_TRANSLATION_LANGUAGES    \u003cstring\u003e,[string...]  (default: English;中文;Français;Italiano;日本語;한국어;Deutsch;繁體中文)\n  GTA_TRANSLATION_SOURCE       \u003cstring\u003e              (default: English)\n  GTA_TRANSLATION_TARGET       \u003cstring\u003e              (default: 中文)\n```\n\n\n\u003e [!NOTE]\n\u003e The first time you run this project, the system will download the required models; this process may take anywhere from a few minutes to several tens of minutes, depending on your internet connection.\n\n\n## Screenshot\nOriginal source: [Luoyang, the peony city that stole a British girl's heart](https://www.ecns.cn/travel/2026-06-02/detail-ihffcfqs3229531.shtml)\n\n![Screenshot](screenshot.png)\n\n## Contributing\nContributions are welcome and will be fully credited.\n\n## Acknowledgements\n- [Kronk](https://github.com/ardanlabs/kronk)\n- [Fyne](https://github.com/fyne-io/fyne)\n- [Ctrl+Revise](https://github.com/bahelit/ctrl_plus_revise)\n- [franslate](https://github.com/sercanarga/franslate)\n\n## License\nThis project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcangz%2Fgta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvulcangz%2Fgta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcangz%2Fgta/lists"}