{"id":15813775,"url":"https://github.com/ignaciomolinaportoles/swiftyproxy","last_synced_at":"2026-04-29T14:35:13.082Z","repository":{"id":254931640,"uuid":"848003222","full_name":"IgnacioMolinaPortoles/SwiftyProxy","owner":"IgnacioMolinaPortoles","description":"SwiftyProxy is a lightweigth Network Logger for MacOS written in Swift","archived":false,"fork":false,"pushed_at":"2024-08-27T01:10:34.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-06T04:05:26.001Z","etag":null,"topics":["ios","logging","macos","mitm","networking","proxy","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/IgnacioMolinaPortoles.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-08-27T00:30:45.000Z","updated_at":"2024-08-27T01:11:22.000Z","dependencies_parsed_at":null,"dependency_job_id":"957ed152-3d9c-4549-9ab5-95ab9578015e","html_url":"https://github.com/IgnacioMolinaPortoles/SwiftyProxy","commit_stats":null,"previous_names":["ignaciomolinaportoles/swiftyproxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioMolinaPortoles%2FSwiftyProxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioMolinaPortoles%2FSwiftyProxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioMolinaPortoles%2FSwiftyProxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IgnacioMolinaPortoles%2FSwiftyProxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IgnacioMolinaPortoles","download_url":"https://codeload.github.com/IgnacioMolinaPortoles/SwiftyProxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246569006,"owners_count":20798341,"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":["ios","logging","macos","mitm","networking","proxy","swift"],"created_at":"2024-10-05T04:05:45.990Z","updated_at":"2026-04-29T14:35:13.017Z","avatar_url":"https://github.com/IgnacioMolinaPortoles.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"1271\" alt=\"Screenshot 2024-08-26 at 9 58 54 PM\" src=\"https://github.com/user-attachments/assets/818e1042-5273-4fd8-a0fc-6165e23333e9\"\u003e\n\n## Features\n- [x] Network Interception: Capture HTTP/HTTPS requests and responses.\n- [x] Detailed Logging: View all intercepted network traffic, including headers and body.\n- [x] User-Friendly Interface: Simple and intuitive interface to monitor network activity.\n\n## Todos\n- [ ] Brotli Decryption: Automatically decompress Brotli-encoded responses to display human-readable content.\n- [ ] Request Modification: Allow users to edit and resend intercepted network requests.\n- [ ] Improve UI\n\n## Basic Usage\n\u003cp align=\"center\"\u003e\n    \u003cimg width=\"421\" alt=\"Screenshot 2024-08-26 at 10 04 07 PM\" src=\"https://github.com/user-attachments/assets/05ff27f7-b419-4021-b5c1-72ef72ed5ab1\"\u003e\n\u003c/p\u003e\n\n1. Create certificates (See below)\n2. Install cerificates in Mac and iOS Simulator\n3. Configure certificates in SwiftyProxy\n4. Start server (First button) and set wifi proxy (Second button)\n5. Start watching your network traffic!\n\n### Creating certificates\n\n### Generate the Root Certificate (Root CA)\nThis certificate will be used to sign the server and client certificates. It must be installed on both the Mac and the simulator.\n\nGenerate the private key for the Root CA\n```\nopenssl genrsa -out nacho-root-key.pem 4096\n```\n\nGenerate the Root CA certificate\n```\nopenssl req -x509 -new -nodes -key nacho-root-key.pem -sha256 -days 825 -out nacho-root-ca.pem -subj \"/C=US/ST=Delaware/L=Wilmington/O=Nacho LLC/CN=Nacho Root CA\"\n```\n### Generate Certificates for the Server\nThis certificate will be used by the MITM proxy.\n\nGenerate the server's private key\n```\nopenssl genrsa -out nacho-server-key.pem 4096\n```\n\n### Create a configuration file for the server certificate (nacho-server.conf)\n```\ncat \u003e nacho-server.conf \u003c\u003cEOF\n[req]\ndefault_bits = 4096\nprompt = no\ndefault_md = sha256\ndistinguished_name = dn\nreq_extensions = req_ext\n\n[dn]\nC = AR\nST = Buenos Aires\nL = Buenos Aires\nO = Nacho\nCN = jsonplaceholder.typicode.com\n\n[req_ext]\nsubjectAltName = @alt_names\n\n[alt_names]\nDNS.1 = jsonplaceholder.typicode.com\nEOF\n```\n\nGenerate a CSR (Certificate Signing Request) for the server\n```\nopenssl req -new -key nacho-server-key.pem -config nacho-server.conf -out nacho-server.csr\n```\n\nSign the server certificate with the Root CA\n```\nopenssl x509 -req -in nacho-server.csr -CA nacho-root-ca.pem -CAkey nacho-root-key.pem -CAcreateserial -out nacho-server.crt -days 825 -sha256 -extfile nacho-server.conf -extensions req_ext\n```\n\n## Certificate Installation\n\nMac and Simulator:\nInstall the nacom-root-ca.pem certificate on both the Mac and the simulator. This will be the root certificate that both will trust.\n\nMITM Proxy: Use the nacho-server.crt and nacho-server-key.pem certificates in SwiftyProxyCore.\n\n## TIP\n- Enable Trust in the Simulator\n- Ensure that the root certificate (nacom-root-ca.pem) is marked as trusted in both the simulator and the Mac’s settings.\n\n\nIn file `SwiftyProxyCore.swift` inside the SwiftyProxyCore Package, \n\n```\nlet serverCertPath = \"\"\"\n    \"\"\"\n\nlet serverKeyPath = \"\"\"\n    \"\"\"\n```\n\n\n### Contributing\n\nContributions are welcome! Please fork this repository and submit a pull request with your improvements.\n\n### Contact\nFor any questions, feel free to reach out via issues or by contacting in [LinkedIn](https://www.linkedin.com/in/ignacio-molina-portoles-a4b844173/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignaciomolinaportoles%2Fswiftyproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fignaciomolinaportoles%2Fswiftyproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fignaciomolinaportoles%2Fswiftyproxy/lists"}