{"id":13551104,"url":"https://github.com/schollz/cowyodel","last_synced_at":"2025-04-22T14:04:32.023Z","repository":{"id":57603478,"uuid":"95625440","full_name":"schollz/cowyodel","owner":"schollz","description":"Easily move things between computers with a code phrase and https://cowyo.com  :cow: :speech_balloon:","archived":false,"fork":false,"pushed_at":"2019-12-01T10:34:30.000Z","size":8626,"stargazers_count":63,"open_issues_count":3,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-17T04:18:26.523Z","etag":null,"topics":["cli","cowyo-server","pastebin"],"latest_commit_sha":null,"homepage":"","language":"Go","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/schollz.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":"2017-06-28T03:35:44.000Z","updated_at":"2024-01-16T13:08:01.000Z","dependencies_parsed_at":"2022-09-12T21:41:05.336Z","dependency_job_id":null,"html_url":"https://github.com/schollz/cowyodel","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fcowyodel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fcowyodel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fcowyodel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schollz%2Fcowyodel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schollz","download_url":"https://codeload.github.com/schollz/cowyodel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250255710,"owners_count":21400411,"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":["cli","cowyo-server","pastebin"],"created_at":"2024-08-01T12:01:42.442Z","updated_at":"2025-04-22T14:04:31.926Z","avatar_url":"https://github.com/schollz.png","language":"Go","funding_links":[],"categories":["Go","cli"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg\n    src=\"logo.png\"\n    width=\"260\" height=\"80\" border=\"0\" alt=\"cowyodel\"\u003e\n\u003cbr\u003e\n\u003ca href=\"https://travis-ci.org/schollz/cowyodel\"\u003e\u003cimg src=\"https://img.shields.io/travis/schollz/cowyodel.svg?style=flat-square\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/schollz/cowyodel/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/version-1.2.3-brightgreen.svg?style=flat-square\" alt=\"Version\"\u003e\u003c/a\u003e\n\u003cimg src=\"https://img.shields.io/badge/coverage-43%25-yellow.svg?style=flat-square\" alt=\"Code Coverage\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eEasily move things between computers using  \u003ca href=\"https://github.com/schollz/cowyo\"\u003ecowyo\u003c/a\u003e  :cow: :speech_balloon:\u003c/p\u003e\n\n*cowyodel* allows simple and secure sharing of text/data between computers.  *cowyodel* temporarily transfers your data (with optional client-side encryption) to [a cowyo server](https://github.com/schollz/cowyo) where it resides until the other computer downloads it using the provided secret code phrase.\n\nDemo\n====\n\n[![asciicast](demo.gif)](https://asciinema.org/a/Oq6enXjipBXqFcugqV7mSvdpR)\n\nGetting Started\n===============\n\n## Install\n\nIf you have Go1.7+\n\n```\ngo get -u -v github.com/schollz/cowyodel\n```\n\nor just download from the [latest releases](https://github.com/schollz/cowyodel/releases/latest).\n\n## Basic usage \n\n### Upload\n\nTo share a file with another computer, you first upload it to a cowyo server. By default *cowyodel* uses [cowyo.com](https://cowyo.com), but [you can host your own cowyo server](https://github.com/schollz/cowyo) as well (see Advanced Usage).\n\n```\n$ cowyodel upload README.md\nUploaded README.md (textual data). Your codephrase: total-perform-retro\n\nView/edit your data:\n\n\thttps://cowyo.com/total-perform-retro\n\nDownload using cowyodel:\n\n\tcowyodel download total-perform-retro\n```\n\nor\n\n```\n$ cat README.md | cowyodel upload\nUploaded (textual data). Your codephrase: total-perform-retro\n\nView/edit your data:\n\n\thttps://cowyo.com/total-perform-retro\n\nDownload using cowyodel:\n\n\tcowyodel download total-perform-retro\n```\n\nAfter uploading, you will recieve a code-phrase, in the above example the code-phrase is `total-perform-retro`. If you don't want to use code phrases, you can also specify your own name using `-name`, see Advanced Usage below.\n\nThe uploads are fully compatible with [the cowyo server](https://cowyo.com), so you can view and edit them using the code-phrase (e.g.  `cowyo.com/total-perform-retro` in above example). \n\n### Download\n\nOn any other computer connected to the internet, you can download the file using the name using `cowyodel download code-phrase`.\n\n```\n$ cowyodel download total-perform-retro\nWrote text of 'total-perform-retro' to 'README.md'\n```\n\nAfter downloading, it will be erased from the cowyo.com. If you don't trust this server, you can also specify your own (see Advanced Usage). You can add `--store` flag to prevent automatic deletion from the cowyo server.\n\n\nAdvanced Usage\n===============\n\n### Persist (don't delete after first access)\n\nAdding `--store` will keep the file on the server, even after accessing.\n\n```\n$ cowyodel upload --store FILE\n```\n\n\n### Specify codephrase\n\nIf you don't want to use a codephrase, use `--name` to specify the name of file.\n\n```\n$ cowyodel upload --name README.md\nUploaded README.md (textual data). Your codephrase: README.md\n```\n\nIt is possible that someone could have used that page (and locked it) which would not allow that page to be used and a message \"Locked, must unlock first\" will appear.\n\n### Client-side encryption\n\n```\n$ cowyodel upload --encrypt README.md\nEnter passphrase: 123\nUploaded README.md (textual data). Your codephrase: total-perform-retro\n\n$ cowyodel download total-perform-retro\nEnter passphrase: 123\nWrote text of 'total-perform-retro' to 'README.md'\n```\n\nThe encryption is fully compatible with the server-side encryption on [cowyo.com](https://cowyo.com), so you can still use the web browser to decrypt/encrypt your document.\n\nIf the decryption fails, the document will be re-uploaded to the cowyo server.\n\n### Binary files\n\n*cowyodel* automatically detects binary data and uploads as such.\n\n```\n$ cowyodel upload /tmp/image.jpg\nUploaded image.jpg (binary data). Your codephrase: empire-cricket-tokyo\n\nDownload using cowyodel:\n\n\tcowyodel download empire-cricket-tokyo\n\n$ cowyodel download image.jpg\nWrote binary data to 'image.jpg'\n\n$ sha256sum /tmp/image.jpg image.jpg\n62a9583758d54e666ff210be3805483bd76ac522ea649f0264de65124943c0b3 */tmp/image.jpg\n62a9583758d54e666ff210be3805483bd76ac522ea649f0264de65124943c0b3 *image.jpg\n```\n\n_Note:_ you should not access uploaded binary files at via the web browser as it would risk corrupting them.\n\n### Self-hosting cowyo server\n\nYou can also [host your own cowyo server](https://github.com/schollz/cowyo) and use that instead of the default `cowyo.com`. To host *cowyo* yourself, just use\n\n```\n$ go get github.com/schollz/cowyo/...\n$ cowyo\nRunning cowyo server (version ) at http://localhost:8050\n```\n\n(If you don't have Go installed, [you can also download a release version](https://github.com/schollz/cowyo/releases/latest)).\n\nOnce you have a self-hosted cowyo server, you just need to specify the server when running *cowyodel*:\n\n```\n$ cowyodel --server http://localhost:8050 upload FILE\nuploaded to total-perform-retro\n```\n\n### Help\n\n```\n$ cowyodel -h\nNAME:\n   cowyodel - upload/download encrypted/unencrypted text/binary to cowyo.com\n\nUSAGE:\n   Upload a file:\n    cowyodel upload README.md\n    cat README.md | cowyodel upload\n   \n   Download a file:\n    cowyodel download 2-adoring-thompson\n\n   Persist (and don't delete after first access):\n    cowyodel upload --store FILE\n\n   Specify filename:\n    cowyodel upload --name README.md\n\n   Client-side encryption:\n    cowyodel upload --encrypt README.md\n\n    \n\nCOMMANDS:\n     upload, u    upload document\n     download, d  download document\n     help, h      Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --server value  cowyo server to use (default: \"https://cowyo.com\")\n   --debug         debug mode\n   --help, -h      show help\n   --version, -v   print the version\n```\n\n\nInspiration\n===========\n\nThis tool was inspired by the following:\n\n- [wormhole](https://github.com/warner/magic-wormhole)\n- [piknik](https://github.com/jedisct1/piknik)\n\n*cowyodel* does not represent a significant innovation over these tools. However, there are some advantages that *cowyodel* provides:\n\n- Trust. You can run your own *cowyo* server on a domain you trust.\n- Direct edting. You can directly edit plaintext documents on the *cowyo* server using the web interface.\n- Simplicity. The codebase is \u003c 1k LOC, and is straightforward to understand.\n\nDevelopment\n===========\n\nTo run tests, make sure to start a `cowyo` server first.\n\n```\n$ go get -u github.com/schollz/cowyo/...\n$ cowyo\n$ go test\n```\n\nLicense\n========\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschollz%2Fcowyodel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschollz%2Fcowyodel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschollz%2Fcowyodel/lists"}