{"id":25377263,"url":"https://github.com/willghatch/emacs-composiphrase","last_synced_at":"2026-01-22T20:08:40.148Z","repository":{"id":275250725,"uuid":"924951031","full_name":"willghatch/emacs-composiphrase","owner":"willghatch","description":null,"archived":false,"fork":false,"pushed_at":"2025-06-21T00:23:21.000Z","size":8,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-21T01:30:07.904Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/willghatch.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}},"created_at":"2025-01-30T23:41:29.000Z","updated_at":"2025-06-21T00:23:24.000Z","dependencies_parsed_at":"2025-04-09T10:56:31.093Z","dependency_job_id":null,"html_url":"https://github.com/willghatch/emacs-composiphrase","commit_stats":null,"previous_names":["willghatch/emacs-composiphrase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/willghatch/emacs-composiphrase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willghatch%2Femacs-composiphrase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willghatch%2Femacs-composiphrase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willghatch%2Femacs-composiphrase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willghatch%2Femacs-composiphrase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/willghatch","download_url":"https://codeload.github.com/willghatch/emacs-composiphrase/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/willghatch%2Femacs-composiphrase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28670366,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T19:36:09.361Z","status":"ssl_error","status_checked_at":"2026-01-22T19:36:05.567Z","response_time":144,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-02-15T04:46:49.803Z","updated_at":"2026-01-22T20:08:40.142Z","avatar_url":"https://github.com/willghatch.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Composiphrase\n\nThis is an emacs library for composing “command sentences” for execution.\nYou configure the names of verbs, objects, and modifiers, as well as which default modifiers are implied by any given verb or object if an explicit modifier is not given.\nYou also configure a match table that specifies how sentences are mapped to concrete commands (and what arguments are passed).\nThen you bind keys that add any number of these words to the `composiphrase-current-sentence` and/or to `composiphrase-execute-current-sentence`.\n\nThere is a large demo configuration for the matcher [here](https://github.com/willghatch/emacs-composiphrase-demo/blob/master/composiphrase-demo-match-config.el), which I may turn into a default configuration (that you would set by calling some `use-default-config` function).\n\nBut more generally, [here](https://github.com/willghatch/emacs-composiphrase-demo) is an end-to-end demo of a composable editor using composiphrase.\nThe demo is vim-like, but taking the ideas of composability and text objects further, making an order of magnitude more operations at reach while also making it easier to memorize.\nSee [this blog post](https://willghatch.net/blog/text-editing/composiphrase_composable-editing-language-like-vim-but-moreso/) for more details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillghatch%2Femacs-composiphrase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwillghatch%2Femacs-composiphrase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwillghatch%2Femacs-composiphrase/lists"}