{"id":13732500,"url":"https://github.com/pitr/gemini-ios","last_synced_at":"2025-04-14T12:05:40.498Z","repository":{"id":43941503,"uuid":"266392637","full_name":"pitr/gemini-ios","owner":"pitr","description":"Elaho - iOS browser for Gemini protocol","archived":false,"fork":false,"pushed_at":"2023-11-26T10:35:23.000Z","size":171920,"stargazers_count":122,"open_issues_count":21,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-14T12:05:33.899Z","etag":null,"topics":["gemini","swift","xcode"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pitr.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}},"created_at":"2020-05-23T18:08:01.000Z","updated_at":"2025-04-05T08:08:46.000Z","dependencies_parsed_at":"2024-11-15T00:40:51.284Z","dependency_job_id":null,"html_url":"https://github.com/pitr/gemini-ios","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitr%2Fgemini-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitr%2Fgemini-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitr%2Fgemini-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pitr%2Fgemini-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pitr","download_url":"https://codeload.github.com/pitr/gemini-ios/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248877984,"owners_count":21176243,"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":["gemini","swift","xcode"],"created_at":"2024-08-03T02:01:59.741Z","updated_at":"2025-04-14T12:05:40.473Z","avatar_url":"https://github.com/pitr.png","language":"Swift","funding_links":[],"categories":["Swift","Clients"],"sub_categories":["Graphical"],"readme":"![Logo](https://github.com/pitr/gemini-ios/raw/master/Client/Assets/Images.xcassets/AppIcon.appiconset/180.png)\n\n# Elaho (Gemini for iOS) - DEPRECATED\n\nA [Project Gemini](https://gemini.circumlunar.space/) browser.\n\nSupports latest Gemini standard, including:\n- all status codes\n- input (including sensitive input)\n- client certificates\n- all of text/gemini\n\nBuilt on a fork of an open source [Firefox Browser for iOS](https://github.com/mozilla-mobile/firefox-ios), inheriting the following features:\n- tabs\n- bookmarks\n- history\n- customizable search engines\n- share extension\n- etc\n\n~~Download on [the App Store](https://apps.apple.com/app/id1514950389)~~ (no longer available). Supports iOS 12.0 and above.\n\n![Gemini screenshot](https://raw.githubusercontent.com/pitr/gemini-ios/master/screenshot.png)\n\n## Building Requirements\n\n* [Relatively recent Xcode](https://apps.apple.com/app/xcode/id497799835)\n* [Carthage](https://github.com/Carthage/Carthage)\n* [Node.js](https://nodejs.org/) (to build user scripts)\n\n### Building the code\n\n1. Install the latest [Xcode developer tools](https://developer.apple.com/xcode/downloads/) from Apple.\n1. Install Node.js\n    ```shell\n    brew update\n    brew install node\n    ```\n1. Clone the repository:\n    ```shell\n    git clone https://github.com/pitr/gemini-ios\n    ```\n1. Build User Scripts:\n    ```shell\n    cd gemini-ios\n    sh ./bootstrap.sh\n    ```\n1. Open `Client.xcodeproj` in Xcode.\n1. Build the `Gemini` scheme in Xcode.\n\n#### Building User Scripts\n\nUser Scripts (JavaScript injected into the `WKWebView`) are compiled, concatenated and minified using [webpack](https://webpack.js.org/). User Scripts to be aggregated are placed in the following directories:\n\n```\n/Client\n|-- /Frontend\n    |-- /UserContent\n        |-- /UserScripts\n            |-- /AllFrames\n            |   |-- /AtDocumentEnd\n            |   |-- /AtDocumentStart\n            |-- /MainFrame\n                |-- /AtDocumentEnd\n                |-- /AtDocumentStart\n```\n\nThis reduces the total possible number of User Scripts down to four. The compiled output from concatenating and minifying the User Scripts placed in these folders resides in `/Client/Assets` and are named accordingly:\n\n* `AllFramesAtDocumentEnd.js`\n* `AllFramesAtDocumentStart.js`\n* `MainFrameAtDocumentEnd.js`\n* `MainFrameAtDocumentStart.js`\n\nTo simplify the build process, these compiled files are checked-in to this repository. When adding or editing User Scripts, these files can be re-compiled with `webpack` manually. This requires Node.js to be installed and all required `npm` packages can be installed by running `npm install` in the root directory of the project. User Scripts can be compiled by running the following `npm` command in the root directory of the project:\n\n```\nnpm run build\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpitr%2Fgemini-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpitr%2Fgemini-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpitr%2Fgemini-ios/lists"}