{"id":15184587,"url":"https://github.com/nonprojects/pyoutline","last_synced_at":"2025-10-26T23:30:33.539Z","repository":{"id":55612577,"uuid":"523105769","full_name":"NonProjects/pyoutline","owner":"NonProjects","description":"A simple CLI app to run Outline VPN keys","archived":false,"fork":false,"pushed_at":"2022-10-11T17:39:52.000Z","size":41,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-10-30T06:32:12.596Z","etag":null,"topics":["outline","outline-vpn","python3","shadowsocks"],"latest_commit_sha":null,"homepage":"","language":"Python","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/NonProjects.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}},"created_at":"2022-08-09T20:54:23.000Z","updated_at":"2023-01-21T16:39:26.000Z","dependencies_parsed_at":"2022-08-15T04:21:00.099Z","dependency_job_id":null,"html_url":"https://github.com/NonProjects/pyoutline","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NonProjects%2Fpyoutline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NonProjects%2Fpyoutline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NonProjects%2Fpyoutline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NonProjects%2Fpyoutline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NonProjects","download_url":"https://codeload.github.com/NonProjects/pyoutline/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238408637,"owners_count":19467142,"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":["outline","outline-vpn","python3","shadowsocks"],"created_at":"2024-09-27T17:05:20.047Z","updated_at":"2025-10-26T23:30:33.534Z","avatar_url":"https://github.com/NonProjects.png","language":"Python","readme":"# PyOutline: CLI app to start Outline VPN keys\n\nWith **PyOutline** you can easily run [ShadowSocks proxy](https://en.wikipedia.org/wiki/Shadowsocks) from the [**Outline keys**](https://en.wikipedia.org/wiki/Outline_VPN).\n\n## Installation\n\n**PIP** ([PyPI](https://pypi.org/project/pyoutline/))\n```\npip install pyoutline\n```\n**With clone from GitHub**\n```\ngit clone https://github.com/NonProjects/pyoutline\npip install ./pyoutline\n```\n## Optional requirements\n\nYou can install latest Shadowsocks if you're on Linux:\n```\napt install shadowsocks-libev # e.g Debian\n```\n## Usage\n\nThe \"*How to use*\" is pretty simple:\n```\npyoutline client -k \"ss://YWVzLTI1Ni1nY206Y2RCSURWNDJEQ3duZklO@ak1344.free.www.outline.network:8118\"\n```\nIf you want to transform Outline Key into the ss-local string:\n```\npyoutline to-ss -k \"ss://YWVzLTI1Ni1nY206Y2RCSURWNDJEQ3duZklO@ak1344.free.www.outline.network:8118\"\n# ^ ss-local -s \"ak1344.free.www.outline.network\" -p 8118 -k \"cdBIDV42DCwnfIN\" -m \"aes-256-gcm\" -l 53735\n```\nSet your own port or ask system to set the free one\n```\npyoutline client -p 50000 # Set port 50000, script will ask you for Key\npyoutline client -r # Get a random port, script will ask you for Key\n```\nYou can also specify keys from the file. First working Key will be used:\n```\npyoutline client -k /home/user/outline_keys.txt\n```\nThe insides of the file with keys should be placed like this:\n```\nss://YWVzLTI1Ni1nY206Y2RCSURWNDJEQ3duZklO@ak1344.free.www.outline.network:8118\nss://YWVzLTI1Ni1nY206VEV6amZBWXEySWp0dW9T@ak1343.free.www.outline.network:6679\nss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpHIXlCd1BXSDNWYW8=@ak1338.free.www.outline.network:810\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonprojects%2Fpyoutline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnonprojects%2Fpyoutline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnonprojects%2Fpyoutline/lists"}