{"id":13683571,"url":"https://github.com/fsquillace/kyrat","last_synced_at":"2025-04-09T20:14:35.215Z","repository":{"id":15750030,"uuid":"18488736","full_name":"fsquillace/kyrat","owner":"fsquillace","description":"SSH wrapper script that brings your dotfiles always with you on Linux and OSX","archived":false,"fork":false,"pushed_at":"2023-05-02T19:56:55.000Z","size":98,"stargazers_count":241,"open_issues_count":9,"forks_count":19,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-09T20:14:31.315Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fsquillace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2014-04-06T12:05:06.000Z","updated_at":"2025-04-09T16:31:13.000Z","dependencies_parsed_at":"2022-07-08T06:48:30.894Z","dependency_job_id":"721964b8-8261-4128-8398-81ab00996b8c","html_url":"https://github.com/fsquillace/kyrat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsquillace%2Fkyrat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsquillace%2Fkyrat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsquillace%2Fkyrat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fsquillace%2Fkyrat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fsquillace","download_url":"https://codeload.github.com/fsquillace/kyrat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"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-08-02T13:02:15.869Z","updated_at":"2025-04-09T20:14:35.148Z","avatar_url":"https://github.com/fsquillace.png","language":"Shell","funding_links":["https://github.com/sponsors/fsquillace/"],"categories":["Shell","Apps"],"sub_categories":["Tools"],"readme":"kyrat\n=====\nKyrat - A simple ssh wrapper script that brings your dotfiles always with you on Linux and OSX\n\n|Project Status|Communication|\n|:-----------:|:-----------:|\n|[![Build status](https://api.travis-ci.org/fsquillace/kyrat.png?branch=master)](https://travis-ci.org/fsquillace/kyrat) | [![Join the gitter chat at https://gitter.im/fsquillace/kyrat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/fsquillace/kyrat?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) |\n\n**Table of Contents**\n- [Description](#description)\n- [Quickstart](#quickstart)\n- [Installation](#installation)\n  - [Dependencies](#dependencies)\n  - [Linux](#linux)\n  - [OSX](#osx)\n- [Troubleshooting](#troubleshooting)\n- [Contributing](#contributing)\n- [Donating](#donating)\n- [Authors](#authors)\n- [Last words](#last-words)\n\nDescription\n===========\nkyrat is a ssh wrapper that allows to source local dotfiles\non a ssh session to a remote host.\nNo installations or root access on the remote host are required.\nIt works either from/to a Linux or OSX machines.\n\n*kyrat* can transfer to the remote host and source the following dotfiles:\n\n- **bashrc** files (located in either `~/.config/kyrat/bashrc` or inside the directory `~/.config/kyrat/bashrc.d/`).\n- **inputrc** files (located in either `~/.config/kyrat/inputrc` or inside the directory `~/.config/kyrat/inputrc.d/`)\n- **vimrc** files (located in either `~/.config/kyrat/vimrc` or inside the directory `~/.config/kyrat/vimrc.d/`).\n- **tmux.conf** files (located in either `~/.config/kyrat/tmux.conf` or inside the directory `~/.config/kyrat/tmux.conf.d/`).\n- **zshrc** files (located in either `~/.config/kyrat/zshrc` or inside the directory `~/.config/kyrat/zshrc.d/`).\n\n\n### Environment variables\n\n- `KYRAT_SHELL` can be used to set which shell to spawn remotely (default is `bash`). The allowed shells are `bash`, `zsh` and `sh`.\n- `KYRAT_TMPDIR` remote location to store the dotfiles (default `/tmp`).\n\n\n### Kyrat features\nThe following summarizes the Kyrat features:\n\n- Dotfile types supported: `bashrc`, `vimrc`, `inputrc`, `tmux.conf`, `zshrc`\n- Platform: Linux, OSX\n- Compression during tranfer: `gzip`\n- Encoding during transfer: `base64`\n- Automatic removal of remote dotfiles when exiting from Kyrat session\n- Remote dotfile location: `/tmp` (configurable via `KYRAT_TMPDIR` env variable)\n- Remote shells available to spawn: `bash`, `zsh` or `sh` (configurable via `KYRAT_SHELL` env variable)\n\n### How it works?\n\nThis is the sequence of steps that occur when running Kyrat:\n\n- The dotfiles are encoded using Base64 and compressed with Gzip\n- The dotfile blobs are passed through the ssh command line containing a script\n- The remote host will execute such script with the instructions of:\n  - how to decode and extract the dotfiles\n  - where to store the dotfiles (according to `KYRAT_TMPDIR` variable)\n  - which environment variables to set to make the dotfiles working properly\n  - which remote shell to spawn (`bash`, `zsh` or `sh` according to `KYRAT_SHELL` variable)\n\nQuickstart\n==========\n### Bash ###\nWrite locally in either `~/.config/kyrat/bashrc` or any files inside `~/.config/kyrat/bashrc.d/`:\n\n    alias q=exit\n\n    function processof(){\n        ps -U $1 -u $1 u\n    }\n\n    export PATH=$PATH:/sbin:/usr/sbin\n\n\nNow, just access to your remote host:\n\n    $\u003e kyrat myuser@myserver.com\n    myserver.com $\u003e processof feel\n        feel     20567  0.3  0.0  14748   952 pts/5    S+   12:44   0:13 ping www.google.com\n        feel     23458  0.0  0.0  12872  1372 pts/9    R+   13:49   0:00 ps -U feel -u feel u\n\n    myserver.com $\u003e q\n    exit\n\nOr even inline:\n\n    $\u003e kyrat myuser@myserver.com -- processorof feel\n\n### Vim ###\nWrite locally in either `~/.config/kyrat/vimrc` or any files inside `~/.config/kyrat/vimrc.d/`:\n\n    nnoremap \u003csilent\u003e \u003cLeader\u003ee :Explore\u003cCR\u003e\n\nNow, just access to your remote host via `kyrat`, run vim and you will have the shortcut `\\e` for running the vim file explorer.\n\n### Inputrc ###\nWrite locally in either `~/.config/kyrat/inputrc` or any files inside `~/.config/kyrat/inputrc.d/`:\n\n    set completion-ignore-case On\n\nNow, just access to your remote host via `kyrat` and the terminal will have case insensitive tab completion.\n\n### Tmux ###\nWrite locally in either `~/.config/kyrat/tmux.conf` or any files inside `~/.config/kyrat/tmux.conf.d/`:\n\n    bind e setw synchronize-panes on \\; display \"Synchronization ON\"\n    bind E setw synchronize-panes off \\; display \"Synchronization OFF\"\n\nNow, just access to your remote host via `kyrat` and run the following:\n\n```bash\ntmux -f \"$TMUX_CONF\"\n```\n\nThis will open a tmux session and you can now toggle synchronization between\npanes on the same window with the keys `e/E`.\n\nInstallation\n============\nDependencies\n------------\nBefore installing Kyrat be sure that all dependencies are properly installed in your system.\nThe Kyrat dependencies are the following:\n\n- [bash (\u003e=4.0)](https://www.gnu.org/software/bash/)\n- [GNU coreutils](https://www.gnu.org/software/coreutils/)\n\nLinux\n-----\nAssuming all Kyrat dependencies are properly installed in the system, to install Kyrat\nrun the following:\n```sh\n    git clone https://github.com/fsquillace/kyrat ~/.local/share/kyrat\n    export PATH=$PATH:~/.local/share/kyrat/bin\n```\n\nOSX\n---\nIn order to install all Kyrat dependencies, you first need to install [Homebrew](http://brew.sh/).\n\nTo install all the needed dependencies via Homebrew:\n```sh\nbrew update\nbrew install bash coreutils\n```\n\nOnce all Kyrat dependencies are properly installed in the system, to install Kyrat\nrun the following:\n```sh\n    git clone https://github.com/fsquillace/kyrat ~/.local/share/kyrat\n    export PATH=$PATH:~/.local/share/kyrat/bin\n```\n\nTroubleshooting\n===============\nThis section has been left blank intentionally.\nIt will be filled up as soon as troubles come in!\n\nContributing\n============\nYou could help improving Kyrat in the following ways:\n\n- [Reporting Bugs](CONTRIBUTING.md#reporting-bugs)\n- [Suggesting Enhancements](CONTRIBUTING.md#suggesting-enhancements)\n- [Writing Code](CONTRIBUTING.md#your-first-code-contribution)\n\nDonating\n========\nTo sustain the project please consider funding by donations through\nthe [GitHub Sponsors page](https://github.com/sponsors/fsquillace/).\n\nAuthors\n=======\nKyrat was originally created in April 2014 by [Filippo Squillace (feel.sqoox@gmail.com)](https://github.com/fsquillace).\n\nHere is a list of [**really appreciated contributors**](https://github.com/fsquillace/kyrat/graphs/contributors)!\n\n[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/0)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/0)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/1)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/1)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/2)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/2)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/3)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/3)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/4)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/4)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/5)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/5)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/6)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/6)[![](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/images/7)](https://sourcerer.io/fame/fsquillace/fsquillace/kyrat/links/7)\n\nLast words\n==========\n    Consider your origins:\n    You were not born to live like brutes\n    but to follow virtue and knowledge.\n    [verse, Dante Alighieri, from Divine Comedy]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsquillace%2Fkyrat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffsquillace%2Fkyrat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffsquillace%2Fkyrat/lists"}