{"id":13814488,"url":"https://github.com/YacTeam/ohtipi","last_synced_at":"2025-05-15T03:34:38.758Z","repository":{"id":42053732,"uuid":"346519279","full_name":"YacTeam/ohtipi","owner":"YacTeam","description":"iMessage AutoFill in any browser on macOS 🔐","archived":false,"fork":false,"pushed_at":"2022-03-21T23:33:21.000Z","size":3850,"stargazers_count":102,"open_issues_count":5,"forks_count":10,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-19T09:47:48.656Z","etag":null,"topics":["app","macos"],"latest_commit_sha":null,"homepage":"https://ohtipi.com","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/YacTeam.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}},"created_at":"2021-03-10T23:22:04.000Z","updated_at":"2024-11-10T03:21:56.000Z","dependencies_parsed_at":"2022-09-18T10:30:33.203Z","dependency_job_id":null,"html_url":"https://github.com/YacTeam/ohtipi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YacTeam%2Fohtipi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YacTeam%2Fohtipi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YacTeam%2Fohtipi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YacTeam%2Fohtipi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YacTeam","download_url":"https://codeload.github.com/YacTeam/ohtipi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254266521,"owners_count":22042123,"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":["app","macos"],"created_at":"2024-08-04T04:02:01.546Z","updated_at":"2025-05-15T03:34:37.363Z","avatar_url":"https://github.com/YacTeam.png","language":"JavaScript","readme":"\n# Ohtipi\n\niMessage OTP AutoFill in any browser on macOS\n\n### How's it work?\n\nOhTipi relies on a local macOS app that looks for incoming texts with OTP codes in them. The macOS app copies those codes to your clipboard along with a notification. Everything happens locally and nothing is ever sent to a server.\n\n[![OpenGraph Image.](https://sofriendly.s3.amazonaws.com/ohtipiopengraph.png \"OpenGraph\")](https://ohtipi.com/)\n\nDownload for macOS at [Ohtipi.com](https://ohtipi.com/)\n\n***\n\n## Run for development\n\n```shell\nnpm run install;\nnpm run dev;\n```\n\n💡 Note: During development, Full Disk Access permission must be granted to whichever app is running the `npm run dev` command (usually `Terminal.app` or `Visual Studio Code.app`). [More info...](https://github.com/Yac-Team/ohtipi/issues/6)\n\n## Find the important bits\n\n* [Main process](https://github.com/Yac-Team/ohtipi/blob/main/src/index.js)\n* [iMessage service](https://github.com/Yac-Team/ohtipi/tree/main/src/libs/imessage) which queries the local `sqlite` database\n* [Modified fork](https://github.com/Yac-Team/ohtipi/tree/main/src/libs/parse-otp-message) of [`parse-otp-message`](https://github.com/transitive-bullshit/parse-otp-message), includes [service list](https://github.com/Yac-Team/ohtipi/blob/main/src/libs/parse-otp-message/lib/known-services.js), [service patterns](https://github.com/Yac-Team/ohtipi/blob/main/src/libs/parse-otp-message/lib/service-patterns.js) and [auth words](https://github.com/Yac-Team/ohtipi/blob/main/src/libs/parse-otp-message/lib/auth-words.js). Particuarly difficult cases can otherwise be caught and handled within [custom filters](https://github.com/Yac-Team/ohtipi/blob/main/src/libs/parse-otp-message/lib/custom-filters.js)\n\n## Release flow\n\nThe following will only function with proprietary signing keys, etc. It is for internal use only.\n\n### Standard release\n\n\n```shell\nnpm run install;\nnpm run release;\n```\n\n### Setapp release\n\nOpen `config.js` and set `{ build.setApp }` to `true`.\n\nMake sure all `.node` native modules are compiled against the correct version of Node, Electron, etc. This project currently uses `sqlite3`, `node-mac-permissions` and `setapp-nodejs-wrapper`. The build script can be seen in `./build/build-setapp.sh`. `lipo` is used to cross-compile `.node` modules for both `arm64` and `x64`.\n\n```shell\nnpm run build:setapp;\n```\n\nDistribution can now be found in `/dist/mac-universal`.\n\n💡 Note: You may need to re-codesign the Universal app bundle:\n\n```shell\ncodesign -fv --deep -s CBA[..................] ./dist/mac-universal/Ohtipi.app\n```\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYacTeam%2Fohtipi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYacTeam%2Fohtipi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYacTeam%2Fohtipi/lists"}