{"id":14235948,"url":"https://github.com/quidprobros/baphomet","last_synced_at":"2025-08-11T00:33:14.761Z","repository":{"id":89111728,"uuid":"113231049","full_name":"quidprobros/baphomet","owner":"quidprobros","description":"BAPHOMET -- manage your emacs daemons","archived":false,"fork":false,"pushed_at":"2019-12-09T02:17:52.000Z","size":627,"stargazers_count":8,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-13T01:34:40.861Z","etag":null,"topics":["bash","daemon","emacs","emacsclient","workflow","wrapper"],"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/quidprobros.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2017-12-05T20:43:46.000Z","updated_at":"2021-03-11T18:58:54.000Z","dependencies_parsed_at":"2023-06-14T00:30:39.280Z","dependency_job_id":null,"html_url":"https://github.com/quidprobros/baphomet","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/quidprobros/baphomet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quidprobros%2Fbaphomet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quidprobros%2Fbaphomet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quidprobros%2Fbaphomet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quidprobros%2Fbaphomet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quidprobros","download_url":"https://codeload.github.com/quidprobros/baphomet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quidprobros%2Fbaphomet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269813652,"owners_count":24479340,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bash","daemon","emacs","emacsclient","workflow","wrapper"],"created_at":"2024-08-20T21:02:33.175Z","updated_at":"2025-08-11T00:33:14.450Z","avatar_url":"https://github.com/quidprobros.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"\n\nDISCLAIMER -- use at your own peril!\n\nUntil I can be sure daemons cannot be killed with unsaved buffers, be extra careful.\n\nRequirement: Aside from requiring bash 4ish, not too sure! (soz).\n\nDeveloped on `macos 10.13.x` (think, BSD) with `bash 4.4.12(1)-release`.\n\nBelieved to work with the following configurations:\n* `Bash 4.3.42, Fedora 23`\n\n\n```text\nUsage: baphomet [switches] [arguments]\n-h,   --help                      Display (this) help menu\n-s,   --start [name[,name2]]      Summon one or more daemons\n\n-k,   --kill,                     Slay one or more daemons\n--stop [name[,name2]]\n-ka,  --kill-all                  Slay all daemons\n--wipe                      Purge the daemon lair\n-p,   --prune                     Slay clientless daemons\n\n-j,   --join [name]               Join a daemon with name 'name'\n-l,   --list                      List known daemons\n-v,   --verbose                   Make output verbose\n-vv,  --very-verbose              Make output very verbose\n\n-y,   --list-buffers              List file visiting buffers for\neach daemon\n\n-b,   --buffer \u003cname\u003e             Specify buffer name\n\n-i,   --interactive               Interactive mode\n-is,  --shell                     Interactive shell mode\n-x,   --escape                    Exit script, run emacs as normal\n-V,   --version                   Get version of baphomet\n-w,   --watch                     Watch mode. Use as first argument\n\nNote:\nWhen called without arguments, baphomet starts a new daemon\nif necessary and opens a buffer with a default name.\nWhen called with only a buffer or filename, baphomet joins any daemon\nand creates buffer with specified name.\n\nExamples:\n- Summon, slay, or join  daemon named 'levi'\n$ `baphomet --start|--slay|--join levi`\n- Join daemon named 'levi' and open buffer 'justice.txt'\n$ `baphomet --join levi -b|-- justice.txt`\n\n\nDisclaimer: Execute this script at your own peril.\n\n```\n![](demo.gif)\n\n2019/11/11\n===\n`baphomet` will no longer hang when a daemon is unreachable\n\n2019/10/24\n===\nPartially implemented watch mode: E.G. `baphomet --watch --list-buffers`\n\n2019/10/23\n===\nNow, if you've `dialog` installed, it'll be used when using interactive mode.\n\n\n2018/09/29\n===\n* Using `baphomet -kb|--kill-buffer \u003cbuffer-name\u003e \u003cdaemon-name\u003e` will allow you to target buffers for killing associated with a given daemon.\n\n2018/09/16\n===\n* Will now check for and read `.baphomet` is project root. Presently, daemons can be specified.\n\n\n\n2018/06/05\n===\n* Fixed: `baphomet -s -- path/to/file` errors because daemon not assigned name\n* Feat: `baphomet -y|--list-buffers` will now list file visiting buffers for each daemon.\n\n\n2018/06/04\n===\nYou can now kill clientless daemons with `baphomet --prune`!\n\n2018/04/01\n===\nNow you can join a namespaced daemon (eg this/is/my/project), you can join that daemon by specifying the last segment. Neat! Note that `baphomet` will opt for exact match if one exists.\n\n\n2018/02/24\n===\n`Baphomet` will now warn you when you attempt to slay a daemon with file visiting clients, regardless of save status (re `--kill, --kill-all`).\n\n\n2018/01/27\n===\nThe options `-lv` and `-lvv` not longer work. Prefer `-v -l` and `-vv -l`, respectively, for the same results.\n\n\n\nTO-DO\n===\n* bundling ... ~/bin/baphomet ~/lib/baphomet/*\n* being able to parse flags in continuum would be nice\n* interactive mode should also list file buffers\n* interactive mode should allow buffer name entering\n* transparent handling of root owned files\n* confirm working with both gnu and bsd variants\n* consider usefulness of this `https://www.gnu.org/software/emacs/manual/html_node/elisp/Process-Information.html`\n* BUG: dont kill daemons with unsaved buffers\n* BUG: commands sent through socket not working when user is root\n* option to mark daemons to slay\n* `http://graphemica.com/search?page=2\u0026q=braille`\n* check if compatible with gui version and xterm\n* determine min requirements\n* allow/ensure assign user to daemon\n* color code path segments in socket path list\n* send name of daemon to new frame minibuffer\n* jump between daemons\n* include image of baphomet\n* hm, a universal keyboard using registers or whatever might be nice...\n* annotate functions\n* suggest daemon names\n\n* ignore this\n* `irc//:physikoi@freenode.net#bash`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquidprobros%2Fbaphomet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquidprobros%2Fbaphomet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquidprobros%2Fbaphomet/lists"}