{"id":49486079,"url":"https://github.com/glav/copilot-cli-terminal","last_synced_at":"2026-05-01T01:30:53.036Z","repository":{"id":333576129,"uuid":"1134588137","full_name":"glav/copilot-cli-terminal","owner":"glav","description":"A test project to use copilot cli with a dedicated multi-agent terminal","archived":false,"fork":false,"pushed_at":"2026-01-20T05:27:17.000Z","size":866,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-20T05:50:28.085Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-01-14T23:25:25.000Z","updated_at":"2026-01-20T05:27:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/glav/copilot-cli-terminal","commit_stats":null,"previous_names":["glav/copilot-cli-terminal"],"tags_count":null,"template":false,"template_full_name":"glav/template-python","purl":"pkg:github/glav/copilot-cli-terminal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glav%2Fcopilot-cli-terminal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glav%2Fcopilot-cli-terminal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glav%2Fcopilot-cli-terminal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glav%2Fcopilot-cli-terminal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glav","download_url":"https://codeload.github.com/glav/copilot-cli-terminal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glav%2Fcopilot-cli-terminal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32482460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"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":"2026-05-01T01:30:50.850Z","updated_at":"2026-05-01T01:30:53.028Z","avatar_url":"https://github.com/glav.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copilot multi-persona CLI\n\nThis repository provides a multi-persona terminal workflow for GitHub Copilot CLI using `tmux`.\n\n## Quick start\n\n```bash\nuv run copilot-multi start\n```\n\n## Copilot multi-persona CLI (MVP)\n\nThis repo includes an MVP terminal tool that launches a 4-persona workflow using `tmux` panes (Linux-only).\n\nThis tool orchestrates panes and shared context files; it does not replace the underlying GitHub Copilot CLI.\n\n![Screen image](./docs/images/copilot-multi-1.png)\n![Screen image](./docs/images/copilot-multi-2.png)\n\n### Prereqs\n\n- `tmux` installed and available on `PATH`\n- GitHub Copilot CLI (`copilot`) installed and authenticated\n\nDebian/Ubuntu (including many devcontainers):\n\n```bash\nsudo apt-get update\nsudo apt-get install -y tmux\n```\n\n### Install GitHub Copilot CLI\n\nGitHub Copilot CLI is currently distributed via multiple methods (choose one):\n\n- WinGet (Windows)\n- Homebrew (macOS and Linux)\n- npm (all platforms, requires Node.js 22+)\n- Install script (macOS and Linux)\n\n### Authenticate\n\nOn first launch of `copilot`, you’ll be prompted to log in using the `/login` slash command.\n\nFor non-interactive/auth automation, you can also use a fine-grained PAT with the “Copilot Requests” permission via `GH_TOKEN` or `GITHUB_TOKEN`.\n\nWhen you run `copilot-multi start`, it will preflight-check whether `copilot` is already authenticated. If not, it will temporarily launch `copilot` so you can run `/login`, then it continues and starts the tmux session.\n\nNote: the first time it launches `copilot` you may also see a folder trust prompt. Choose “Yes, and remember this folder for future sessions” if you want to avoid being asked again.\n\n### Run\n\n```bash\nuv run copilot-multi start\n```\n\n### Pane scrollback (no per-pane scrollbars)\n\ntmux panes do **not** support visible vertical scrollbars.\n\nWhat you *can* do is scroll each pane’s own history buffer:\n\n- Mouse wheel: when mouse mode is enabled (default), scroll the wheel over a pane to enter tmux copy-mode and scroll that pane’s history.\n- Keyboard: `Ctrl+b` then `[` to enter copy-mode, then use arrow keys / PageUp / PageDown. Press `q` to exit.\n\nThis project sets a higher tmux `history-limit` by default so you’re less likely to lose output.\n\nIf you want “never lose output”, enable logging:\n\n```bash\nuv run copilot-multi start --log-dir .copilot-multi/logs\n```\n\nThis writes one file per pane (e.g. `pm.log`, `impl.log`, `review.log`, `docs.log`).\n\nTo start the session in the background (no attach):\n\n```bash\nuv run copilot-multi start --detach\n```\n\nThis creates/uses `.copilot-multi/` for shared context and a session state file at `.copilot-multi/session.json`.\n\n### What is `.copilot-multi/` and can I delete it?\n\n`copilot-multi` keeps repo-local *runtime* files in `.copilot-multi/` (and it is gitignored).\n\nTypical contents include:\n\n- Shared working docs for the personas (e.g. `WORK_CONTEXT.md`, `DECISIONS.md`, `HANDOFF.md`)\n- Coordination state for the running session (e.g. `session.json` plus a lock file)\n- Troubleshooting artifacts (e.g. `logs/`, `history/`, `responses/`, `broker.log`)\n- Local Copilot integration/cache files for the current machine\n\nIt is safe to clean when you are **not** running an active session:\n\n- Clean everything (will be recreated on next start):\n\n```bash\nrm -rf .copilot-multi\n```\n\n- Or only clean logs/history:\n\n```bash\nrm -rf .copilot-multi/logs .copilot-multi/history .copilot-multi/responses\n```\n\nIf you currently have a tmux session running, stop it first:\n\n```bash\nuv run copilot-multi stop\n```\n\nEach tmux pane starts in a lightweight \"Copilot router\" REPL:\n\n- Anything you type is forwarded to the GitHub Copilot CLI (`copilot`) via a shared local broker, so all panes share one Copilot session/history.\n- To run wrapper commands locally (not via Copilot), prefix them with `copilot-multi`, for example: `copilot-multi status`.\n- Include another pane's latest response inline with `{{ctx:\u003cpersona\u003e}}` (or legacy `{{last:\u003cpersona\u003e}}`), where `\u003cpersona\u003e` is `pm`, `impl`, `review`, or `docs`.\n- Request another persona inline with `{{agent:\u003cpersona\u003e}}` or `{{agent.\u003cpersona\u003e}}` (runs `copilot-multi ask \u003cpersona\u003e --prompt ...` sequentially; mirrors the prompt in that persona pane; uses the text *after* the marker up to the next marker/end; respects `--timeout`/`--poll`). The originating pane receives only the text before the first agent marker.\n\nExample:\n```text\nTell me a dad joke about unicorns. {{agent:review}} Review the joke from {{ctx:pm}}\n```\nThe PM pane receives only the text before the first agent marker; the review pane receives the text after its marker.\n\nIf you want to authenticate Copilot CLI ahead of time (without launching tmux):\n\n```bash\nuv run copilot-multi auth\n```\n\n### Pane colors / theme\n\nThe pane REPL supports ANSI-colored headers and persona prompts (e.g. `pm\u003e`, `review\u003e`).\n\nConfig lookup (lowest → highest precedence):\n\n- `~/.config/copilot-multi/config.toml` (or `$XDG_CONFIG_HOME/copilot-multi/config.toml`)\n- `./copilot-multi.toml`\n- `./.copilot-multi/config.toml`\n- `$COPILOT_MULTI_CONFIG` (explicit path)\n\nExample `copilot-multi.toml`:\n\n```toml\n[ui]\ncolor = true\n\n[ui.styles]\nheader = \"bold cyan\"\ntips = \"dim\"\nprompt_delim = \"dim white\"\ninput = \"bright_black\"\n\n[ui.persona_prompt]\npm = \"bold magenta\"\nimpl = \"bold blue\"\nreview = \"bold green\"\ndocs = \"bold yellow\"\n```\n\n### Coordination\n\n```bash\nuv run copilot-multi status\nuv run copilot-multi set-status pm working --message \"Drafting scope + acceptance\"\nuv run copilot-multi wait impl --status done --timeout 1800\nuv run copilot-multi stop\n```\n\n## Linting and formatting\n\nThis repo includes `ruff`.\n\n```bash\nuv sync --group dev\nuv run ruff check .\nuv run ruff format .\n```\n\n## Environment variables\n\n- Copy `.env-sample` to `.env` and fill in values as needed.\n- `.env` is gitignored.\n\n```bash\ncp .env-sample .env\n```\n\n## Copilot / AI Assisted workflow\n\nThis repo includes an `.agent/` directory containing reusable prompt “commands” and standards you can use with GitHub Copilot (and other coding agents).\n\n- `.agent/commands/`: ready-to-run prompts for common tasks, for example:\n\t- `setup/`: repo bootstrap tasks (e.g. creating `AGENTS.md`)\n\t- `project/`: planning prompts (e.g. sprint planning)\n\t- `docs/`: documentation prompts (e.g. creating ADRs)\n- `.agent/standards/`: standards for consistent artifacts (ADRs, feature specs, task plans)\n- `.agent/instructions/`: “apply-to” instructions that guide how agents write certain file types (e.g. Bash and Bicep)\n\nTreat `.agent/` as a starting library: keep what helps your team, remove what doesn’t, and add org-specific workflows over time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglav%2Fcopilot-cli-terminal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglav%2Fcopilot-cli-terminal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglav%2Fcopilot-cli-terminal/lists"}