{"id":17003864,"url":"https://github.com/cldwalker/share","last_synced_at":"2025-04-12T06:33:50.639Z","repository":{"id":21475376,"uuid":"24793988","full_name":"cldwalker/Share","owner":"cldwalker","description":"Collaborative editing for Light Table","archived":false,"fork":false,"pushed_at":"2015-05-06T02:58:15.000Z","size":520,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T18:53:03.572Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/cldwalker.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-04T15:58:45.000Z","updated_at":"2019-03-15T22:07:11.000Z","dependencies_parsed_at":"2022-08-21T15:40:51.853Z","dependency_job_id":null,"html_url":"https://github.com/cldwalker/Share","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2FShare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2FShare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2FShare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cldwalker%2FShare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cldwalker","download_url":"https://codeload.github.com/cldwalker/Share/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248530272,"owners_count":21119586,"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":[],"created_at":"2024-10-14T04:32:59.696Z","updated_at":"2025-04-12T06:33:50.574Z","avatar_url":"https://github.com/cldwalker.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Description\n\nThis LT plugin allows two or more LightTable users to share the same CodeMirror\neditor. Each user can their own keybindings - yes emacs users can pair with vim\nusers (cats and dogs living together!). LightTable users can also pair with\nusers using a browser-based CodeMirror editor. Shared connections are pesisted\nthrough a _public_ [firebase](https://www.firebase.com/) connection. If you're\nconcerned about privacy, consider getting a free private ccount.\n\n![Usage Example](example.gif)\n\n## Install\n\nInstall this plugin with LT's plugin manager or clone this project to your LT\nplugins directory.\n\n## Usage\n\n### Two LT users\n\n* First user shares their current tab with command `Share: Share current tab`. ID of created session is copied to clipboard.\n* Second user opens a new tab with command `File: New file`, executes command `Share: Attach current tab` and inputs first user's ID.\n\nTwo LT editors are in sync!\n\n### LT user and browser user\n\n* First user shares their current tab with command `Share: Share current tab`. ID of created session is copied to clipboard.\n* Second user, goes to `http://demo.firepad.io/#ID` where ID is first user's ID.\n\nLT user and browser user are in sync!\n\n## Limitations\n\n* Shared connections are per tab/file.\n* Only editing experience is shared e.g. text manipulation and highlighting. All LightTable behaviors\n  e.g. evaluation, autocompletion and syntax highlighting are _not_ shared. This means only the original editor\n  can evaluate, etc.\n\n## Tips\n\n* In pairing scenarios where eval and other LT features matter, make sure to open a new tab in the same project as the sharer. Also consider screensharing to see the sharer's eval.\n* When pairing on anything that's not a plain text file, sharees should set their file syntax with the command `Editor: Set current editor syntax`.\n* Given the ease of sharing, even between browser and editor, this plugin is a good fit for [swarm coding](http://technomancy.us/162) a.k.a. pairing as a group.\n\n## TODO\n* Detach/dispose from current firebase session\n* Allow firebase url to be configured\n* Consider a workflow where multiple files are shared through one connection.\n  This could be possible by switching files in one tab [with this command](https://github.com/cldwalker/ltfiles/blob/bf5ce36188219622796b794f7dcf7be4d255dd36/src/lt/plugins/ltfiles/document.cljs#L32-L42).\n\n## Credits\n\n* Thanks to @jamii for the proof of concept!\n\n## Bugs/Issues\n\nPlease report them [on github](http://github.com/cldwalker/Share/issues).\n\n## Contributions\n\n[See here](http://tagaholic.me/contributing.html) for contributing guidelines.\n\n## Links\n\n* [firepad atom plugin](https://github.com/firebase/atom-firepad/)\n* [sharejs-codemirror](https://github.com/share/share-codemirror) - Open source alternative to firebase/firepad which requires running your own server(s) but gives you complete control of shared data.\n\n## License\nSee LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcldwalker%2Fshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcldwalker%2Fshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcldwalker%2Fshare/lists"}