{"id":22027139,"url":"https://github.com/brianp/muxed","last_synced_at":"2025-08-23T13:16:12.486Z","repository":{"id":18307792,"uuid":"21486122","full_name":"brianp/muxed","owner":"brianp","description":"Another TMUX project manager","archived":false,"fork":false,"pushed_at":"2022-04-16T20:07:13.000Z","size":644,"stargazers_count":60,"open_issues_count":10,"forks_count":3,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-06T10:02:56.282Z","etag":null,"topics":["multiplexer","muxed","rust","screen","terminal","tmux","tmux-configs","tmux-configuration","tmux-session","window","window-manager"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/brianp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-07-04T05:13:15.000Z","updated_at":"2025-01-04T00:51:44.000Z","dependencies_parsed_at":"2022-08-25T12:51:46.798Z","dependency_job_id":null,"html_url":"https://github.com/brianp/muxed","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Fmuxed","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Fmuxed/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Fmuxed/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianp%2Fmuxed/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianp","download_url":"https://codeload.github.com/brianp/muxed/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252862854,"owners_count":21815930,"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":["multiplexer","muxed","rust","screen","terminal","tmux","tmux-configs","tmux-configuration","tmux-session","window","window-manager"],"created_at":"2024-11-30T07:35:33.201Z","updated_at":"2025-05-07T10:45:16.195Z","avatar_url":"https://github.com/brianp.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"Muxed - “Another TMUX project manager”\n=====\n[![Build Status](https://travis-ci.org/brianp/muxed.png?branch=master)](https://travis-ci.org/brianp/muxed)\n\nDrop muxed in to your `$PATH` and take it for a spin. Happy to receive feature requests or bug reports!\n\n## Muxed\n\n**Muxed**: Provides the functionality for creating, opening and parsing your project configs to\nlaunch a TMUX session.\n\n**Snapshot**: __Experimental__ : Create a config file based on a running tmux\nsession.\n\n## Installation\n\n### Download a release:\n\nSee the [releases](https://github.com/brianp/muxed/releases) page for muxed packages.\nDownload and untar the package as desired.\nMake sure the bin is somewhere in your `$PATH`. I\ngenerally move the bins in to `/usr/local/bin`.\n\n```shell\n$ tar -xvzf muxed-VERSION-SYSTEM.tar.gz\nx muxed\n$ mv muxed /usr/local/bin\n$ muxed --help\n$ muxed my_new_project\n```\n\n### From Homebrew taps\n\nThis will add a [tap](https://github.com/brianp/homebrew-muxed) to install a pre-compiled Muxed bin.\n\n```shell\n$ brew tap brianp/homebrew-muxed\n$ brew install muxed_bin\n```\n\n## For development\n\n### With Docker\n\nDocker commands are long so I use a make file that points all the commands to a\nruning docker container.\n\n```shell\n$ git clone git@github.com:brianp/muxed.git\n$ export MUXED_ENV=nix\n$ make build\n$ make start\n$ make cargo cmd='test --workspace --color=always'\n```\n\n### From source:\n\nHave rust stable installed.\nClone this repo. Then run cargo to build the source, and again use cargo to run the app.\n\n```shell\n$ git clone git@github.com:brianp/muxed.git\n$ cargo build\n$ cargo run -- --help\n$ cargo test --workspace --color=always\n```\n\n## Setup\n\n### 1. Create a new project file.\n\nIf this is your first run, muxed will create the `~/.muxed/` directory for you.\n\n```shell\n$ muxed new my_project\nLooks like this is your first time here. Muxed could't find the configuration directory: `/root/.muxed`\nCreating that now 👌\n\n✌ The template file my_project.yml has been written to /root/.muxed\nHappy tmuxing!\n```\n\nThe generated template will look like this (but with some inline docs):\n```yaml\nroot: \"~/\"\nwindows:\n  - editor:\n      layout: \"main-vertical\"\n      panes: [\"vi\", \"ls -alh\"]\n  - processes: \"ls /proc\"\n  - logs: \"tail -f /var/log/dmesg\"\n```\n\nThis config will create a new tmux session with three windows named *editor*,\n*processes* and *logs*. By default your view will be on the first window opened,\non the first pane, which in this case is *vi* in the *editor* window. The first window will have\ntwo panes split vertically, the left will have the editor *vi* running and the\nright will have a shell listing of your current working directory.\n\n\n### 2. Edit your template\nNow you can use your favourite editor and make changes to the config as desired.\nThis makes the assumption you have an `$EDITOR` env var set.\n\n```shell\n$ muxed edit my_project\n```\n\n### 3. Open TMUX with your muxed config\n```shell\n$ muxed my_project\n```\n\n## Usage Options\n\n```shell\nUsage:\n    muxed (list | ls)\n    muxed [flags] [options] \u003cproject\u003e\n    muxed edit [options] \u003cproject\u003e\n    muxed load [flags] [options] \u003cproject\u003e\n    muxed new [flags] [options] \u003cproject\u003e\n    muxed snapshot [flags] [options] \u003cproject\u003e\n    muxed (-h | --help)\n    muxed (-v | --version)\n\nFlags:\n    -d                  If you want to create a muxed session without connecting to it\n    -f                  Overwrite existing file if one exists\n    --debug             Prints debug information while executing (project opening only)\n    -h, --help          Prints help information\n    -v, --version       Prints version information\n\nOptions:\n    -p \u003cproject_dir\u003e    The directory your project config files live in. Defaults to ~/.muxed/\n    -t \u003csession\u003e        The name of the running TMUX session to codify\n\nArgs:\n    \u003cproject\u003e           The name of your project to open\n\nSubcommands:\n    list                             List the availiable project configs\n    edit \u003cproject\u003e                   Edit an existing project file\n    load \u003cproject\u003e                   Load the specified project, this is the default command\n    new \u003cproject\u003e                    To create a new project file\n    snapshot -t \u003csession\u003e \u003cproject\u003e  Capture a running session and create a config file for it\n```\n\n## Inspiration\nThis project has been inspired by the work done on the [tmuxinator](https://github.com/tmuxinator/tmuxinator) project. Check it out for a `ruby` based tmux session management solution.\n\n## Copyright\nCopyright (c) 2014-2020 Brian Pearce. See [LICENSE](https://github.com/brianp/muxed/blob/master/LICENSE) for further details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianp%2Fmuxed","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianp%2Fmuxed","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianp%2Fmuxed/lists"}