{"id":15654349,"url":"https://github.com/supereg/hap-proxy","last_synced_at":"2025-04-30T23:18:14.158Z","repository":{"id":36469914,"uuid":"222553395","full_name":"Supereg/hap-proxy","owner":"Supereg","description":"Transparent Proxy for the HomeKit Accessory Protocol to intercept and analyze traffic between an Accessory and an iDevice.","archived":false,"fork":false,"pushed_at":"2023-03-02T21:16:36.000Z","size":773,"stargazers_count":27,"open_issues_count":4,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T23:17:54.445Z","etag":null,"topics":["hap","hap-proxy","homekit","homekit-accessory-protocol","homekit-data-streams","proxy"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Supereg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"Supereg"}},"created_at":"2019-11-18T22:03:36.000Z","updated_at":"2024-08-29T14:49:57.000Z","dependencies_parsed_at":"2024-10-23T05:13:42.998Z","dependency_job_id":null,"html_url":"https://github.com/Supereg/hap-proxy","commit_stats":{"total_commits":78,"total_committers":2,"mean_commits":39.0,"dds":0.0641025641025641,"last_synced_commit":"b5092942732a017fb71deaad151c0db622eacaf9"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Supereg%2Fhap-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Supereg%2Fhap-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Supereg%2Fhap-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Supereg%2Fhap-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Supereg","download_url":"https://codeload.github.com/Supereg/hap-proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251795422,"owners_count":21645023,"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":["hap","hap-proxy","homekit","homekit-accessory-protocol","homekit-data-streams","proxy"],"created_at":"2024-10-03T12:51:03.699Z","updated_at":"2025-04-30T23:18:14.125Z","avatar_url":"https://github.com/Supereg.png","language":"TypeScript","readme":"# hap-proxy\n\n`hap-proxy` is a transparent proxy for the HomeKit Accessory Protocol (HAP).\nOn the one hand it acts as an HomeKit accessory and exposes and HAP server (to which you would connect to)\nand on the other hand it acts as an HomeKit controller to an existing HomeKit accessory.\n`hap-proxy` is compliant with hap v1.1.0 meaning it is also capable of proxying HomeKit Data Streams (v1.0) used for\nHomeKit Remotes and Secure Video.\n\n`hap-proxy` is currently work in progress and definitely not finished.\nCurrently, the ambition of the project is to have a hap proxy which can be used for research and reverse engineering.\nThe goal is that  `hap-proxy` outputs the communication made between the HomeKit controller (iOS device etc.) and the\nproxied accessory in a format like pcap.\n\nIf there is interest I could imagine adding functionality which could be helpful to more people.\nFor example features like integrating one HomeKit accessory into multiple HomeKit homes or adding some kind of\nplugin based filtering, which could be used to alter behaviour of certified HomeKit accessories or adding custom\ncapabilities programmatically to certified HomeKit accessories.\nHit me up if you are interested or have any additional ideas.\n\n## Installation\n\n```\nsudo npm install -g hap-proxy\n```\n\n## Command Line\n\nWhen installing `hap-proxy` globally the command-line program `hap-proxy` will be added to your system.  \nRunning `hap-proxy -h` will display the following help menu:\n```\nUsage: hap-proxy [options]\n\nOptions:\n  -V, --version                      output the version number\n  -p, --port \u003cport\u003e                  define the proxy port (default: 60141)\n  -t, --target-name \u003cinstance name\u003e  define the instance name of the device which should be proxied\n  -c, --target-pincode \u003cpincode\u003e     define the pincode with dashes of the homekit device to be proxied\n  --proxy-pincode \u003cpincode\u003e          define a separate pincode for the proxy server\n  --hostname \u003chostname\u003e              define an overwrite for the hostname of the target device. By default the hostname is learned from mDNS service discovery\n  -h, --help                         display help for command\n```\n\nWhen you want to proxy an existing homekit device you must first ensure that the device is unpaired and added to you Wi-Fi.\n\nIn order to start up a basic proxy you must supply `--target-name` and `--target-pincode`.  \nThe first name give the **Instance Name** of the accessory. The easiest way to get that is to open the Home App,\nopen the pairing menu and copy the name of the desired accessory.\n\nThe target pincode is the pincode of the HomeKit accessory. If `--proxy-pincode` is not defined the proxy server\nwill use the same pincode.\n\n## API\n\nOnce I reached a point where the API can be considered stable I'm going to update this section.\n\n## Notes\n\nThis project is heavily inspired by the code base of [HAP-NodeJS](https://github.com/homebridge/HAP-NodeJS)\n(most of the encryption and decryption layers) and [hap-client](https://github.com/forty2/hap-client).\n","funding_links":["https://github.com/sponsors/Supereg"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupereg%2Fhap-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupereg%2Fhap-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupereg%2Fhap-proxy/lists"}