{"id":28603829,"url":"https://github.com/day50-dev/eschatch","last_synced_at":"2025-06-11T17:07:25.520Z","repository":{"id":296267933,"uuid":"992823816","full_name":"day50-dev/ESChatch","owner":"day50-dev","description":"Take your contextual llm along with you throughout your shell journey.","archived":false,"fork":false,"pushed_at":"2025-05-29T19:20:14.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-29T20:35:00.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/day50-dev.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":"2025-05-29T19:13:38.000Z","updated_at":"2025-05-29T19:20:17.000Z","dependencies_parsed_at":"2025-05-29T20:45:22.561Z","dependency_job_id":null,"html_url":"https://github.com/day50-dev/ESChatch","commit_stats":null,"previous_names":["day50-dev/eschatch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/day50-dev/ESChatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day50-dev%2FESChatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day50-dev%2FESChatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day50-dev%2FESChatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day50-dev%2FESChatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/day50-dev","download_url":"https://codeload.github.com/day50-dev/ESChatch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/day50-dev%2FESChatch/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259303317,"owners_count":22837348,"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":"2025-06-11T17:07:19.896Z","updated_at":"2025-06-11T17:07:25.513Z","avatar_url":"https://github.com/day50-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"**ESChatch** is a new concept, generally. It shepherds your input and output as a true wrapper and logs both sides of the conversation into files. Then when you invoke the llm it will pre-empt any existing interaction, kind of like the ssh shell escape. This is what the reversed triangle input in the video is. That's invoked with a keyboard shortcut, currently `ctrl+x`.\n\nThen you type your command in and press enter. This command, plus the context of your previous input and output is then sent off to the llm and its response is wired up to the stdin of the application.\n\nSo for instance: \n * Inside the `zsh` shell it gives shell commands.\n * Inside a full screen program, in this case `vim`. The vim session is pre-empted with a keystroke then just start typing. The llm infers it's vim and knows what mode it's in from the previous keystrokes and correctly exits.\n * Interactive Python is opened. It uses the context to infer it and responds appropriately.\n\nThis works seamlessly over ssh boundaries, in visual applications, at REPLs --- anywhere.\n\n[ESChatch.webm](https://github.com/user-attachments/assets/29530ecf-15b6-4db1-9928-302c8674228e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fday50-dev%2Feschatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fday50-dev%2Feschatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fday50-dev%2Feschatch/lists"}