{"id":16169606,"url":"https://github.com/jerrylum/.25share","last_synced_at":"2026-05-11T07:45:38.647Z","repository":{"id":96608217,"uuid":"284761939","full_name":"Jerrylum/.25share","owner":"Jerrylum","description":"Allows you to send/enter/copy the words you typed on your phone to your computer or back to your phone, support multiple device connections, permission control and encrypted messages.","archived":false,"fork":false,"pushed_at":"2020-12-09T14:39:55.000Z","size":28,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-07T06:43:10.393Z","etag":null,"topics":["android","chat","clipboard","encrypted","gnome","linux","onescript","python","server","share","tool","xclip","xdotool","xsel"],"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/Jerrylum.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,"zenodo":null}},"created_at":"2020-08-03T17:20:14.000Z","updated_at":"2020-12-09T14:39:58.000Z","dependencies_parsed_at":"2023-03-30T21:02:31.677Z","dependency_job_id":null,"html_url":"https://github.com/Jerrylum/.25share","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Jerrylum/.25share","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerrylum%2F.25share","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerrylum%2F.25share/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerrylum%2F.25share/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerrylum%2F.25share/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jerrylum","download_url":"https://codeload.github.com/Jerrylum/.25share/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jerrylum%2F.25share/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262208720,"owners_count":23275460,"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":["android","chat","clipboard","encrypted","gnome","linux","onescript","python","server","share","tool","xclip","xdotool","xsel"],"created_at":"2024-10-10T03:15:22.989Z","updated_at":"2026-05-11T07:45:33.615Z","avatar_url":"https://github.com/Jerrylum.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/jerrylum/.25share\"\u003e\u003cimg src=\"https://i.imgur.com/SZTjDWl.png\" alt=\"IntroIcon\" width=\"100\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003ch3 align=\"center\"\u003eQuarterShare\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\nQuarter Share is made to enable easy message communication between mobile phones and computers. \u003cbr\u003e\u003cbr\u003e\nThis project is divided into three parts, Linux server (this repository) , Windows server\n(\u003ca href=\"https://github.com/jerrylum/.25share-windows\"\u003elink\u003c/a\u003e) and Android application\n(\u003ca href=\"https://github.com/jerrylum/.25share-android\"\u003elink\u003c/a\u003e). Pay a visit to our wiki page for more information about setup and usage.\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003e\u003ca href=\"https://github.com/jerrylum/.25share/wiki\"\u003eSetup Now\u003c/a\u003e\u003c/h4\u003e\n\n---\n\n### Have a quick look\n\nClick the connect button. Then type something on your phone and send it.\n\n\u003ch5 align=\"left\"\u003e\n\u003cimg src=\"https://i.imgur.com/SAdyYWm.gif\"\u003e\n\u003c/h5\u003e\n\u003cbr\u003e\n\n### Is it dangerous?\n\nThe connection between the phone and the computer is secured with AES 256bit Encryption. By default, each new connection needs to be manually confirmed on the server to allow the client to send messages. Also, you can kick any clients you want.\n\n\u003ch5 align=\"left\"\u003e\n\u003cimg src=\"https://i.imgur.com/4S9r4R0.gif\"\u003e\n\u003c/h5\u003e\n\u003cbr\u003e\n\n### Configuration?\n\nSure! You can control how the server handles your messages using internal commands.\n\n\u003ch5 align=\"left\"\u003e\n\u003cimg src=\"https://i.imgur.com/0iSVWNZ.gif\"\u003e\n\u003c/h5\u003e\n\n\u003cbr\u003e\n\n\n### Other Features\n\n- Computers and mobile phones can send messages in both directions\n- Support multiple lines\n- Quick connection speed\n- Offline compatibility\n- Command-line support\n- Internal commands can be used within the server \n- Single Python script\n\n\n\n---\n\n### Wait! I am using Windows!\n\nUse .25Share Windows server [.25Share](https://github.com/Jerrylum/.25share-windows). \n\n### Wait! I am using iPhone!\n\nYou can check out [One Share](https://github.com/Jerrylum/OneShare). \n\n\n### Why I want to make Quarter Share?\n\nThe reason is very simple, just because I like voice input on the phone. For me, typing Chinese on the computer is a bit difficult.  \n\nNow the voice input method on the computer is very complicated, and it is still not as convenient as the input method on the mobile phone. I invented this program so that I can use the phone’s voice input method to type on the computer.  \n\nIf you are using other input methods that can only be used on mobile phones, you can also use this program on your computer.\n\n---\n\n### Details / Not very fun fact\n\nEach time the server is turned on, a new pair of RSA encryption keys will be created.  \n\nWhen a client connects to the server, the server will send its public key to the client. After that, the client will generate an AES key and pass it with RSA public key encryption to the server. Then, the server decrypts the message and obtains the AES key. Finally, the server and the client can start encrypted communication.  \n\nThe security code is a MD5 hash value. Both the server and client will generate a security code using the RSA public key from the server and the AES key. To ensure the messages are secured, You need to verify that the security code displayed on the server is exactly the same as the one displayed on the client.\n\nThe server does not save any logs or configuration files to your computer.  \n\n\n#### More snapshots\n\n\n\u003cimg src=\"https://i.imgur.com/oeJoQ0M.png\"\u003e\n\n\n\u003cimg src=\"https://i.imgur.com/sgTCEC8.png\"\u003e\n\n\n\n\n### Command Line\n\n```\n\nusage: .25share [-h] [--host HOST] [--port PORT] [-a] [-f FLAG]    \n\noptional arguments:\n  -h, --help            show this help message and exit\n  --host HOST           The server's hostname or IP address\n  --port PORT           The port to listen on\n  -a, --allow           Allow all clients to send messages to the server\n                        without the user's permission\n  -f FLAG, --flag FLAG  mode flag\n\n```\n\n\n### Internal Command\n\n```\n.help                            show this help message\n.flag                            show how the server handles messages\n.chflag [flag]                   change how the server handles messages\n.ls                              list all connected clients\n.allow \u003cclient\u003e                  allow client(s) to send messages\n.kick \u003cclient\u003e                   kick specified client(s)\n.send \u003cclient\u003e \u003ccontent\u003e         send a message to client(s)\n.stop                            stop the server\n```\n\n#### Client Selector\n```\n@a      all clients\n@p      the latest client who sent a message / connected\n\u003cID\u003e    specified client id, e.g. `5`\n```\n\nFor example, using `.kick @a` command will kick all connected clients, using `.kick 30` command will kick a connected client with id **30**.\n\n\n#### Note\n1. Commands must be preceded by a period.\n2. Any input that does not start with a period is understood as sending\nthe entire sentence to the latest client (@p).\n3. If you want to send a message that starts with a period, use command \n`.send @p YOUR MESSAGE`\n\n### Mode Flag\n\nWhen you press the \"Send\" button on your phone to send a message, what should the server do after receiving it\n\n```\np       Print on the console\ns1      Copy to primary selection\ns2      Copy to secondary selection\ns3      Copy to clipboard\nt       Typing text\n```\n\nYou can use multiple flags at the same time. e.g. `t`, `s1`, `ps1` and `ps1s2t` are acceptable.  \n\nIt should look like this:\n```\n.25share -f ps1s2t            # command line\n.chflag ps1s2t                # internal command\n```\n\n\n---\n\n### Setup\n\nPlease go to [the wiki page](https://github.com/jerrylum/.25share/wiki).  \n\n\u003cbr\u003e\n\n### Special Thanks\n\nThanks you [SamNg](https://github.com/ngkachunhlp) and [COMMANDER.WONG](https://github.com/COMMANDERWONG) for their suggestions and software testing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerrylum%2F.25share","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerrylum%2F.25share","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerrylum%2F.25share/lists"}