Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 9 additions & 18 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,9 @@ jobs:
if: needs.changes.outputs.docs_only != 'true'
run: bats --print-output-on-failure tests/

# Windows coverage for the native helpers shipped in #103 (PowerShell wrapper,
# Git Bash runner, sqlite3 compatibility shim, cygpath normalization). The
# POSIX-assuming suite is not fully green on Windows yet, so this is staged
# Windows coverage for the native helpers shipped in #103 (Git Bash runner,
# sqlite3 compatibility shim, cygpath normalization). The POSIX-assuming suite
# is not fully green on Windows yet, so this is staged
# (#125): a focused leg targeting the Windows-relevant tests, plus a full leg
# that is informational only (continue-on-error) to track how far the rest
# gets. Neither is a required check yet — promote the focused leg to required
Expand All @@ -143,22 +143,13 @@ jobs:
fail-fast: false
matrix:
include:
# Required-candidate leg: the Windows-tagged tests that pass on
# windows-latest today — the install-side native helpers (#103) and
# the PowerShell runner smoke. This leg is promoted to a required
# check so native Windows behaviour can't silently regress.
#
# Scoped to test_install + test_windows_powershell on purpose: the
# delivery "commandWindows" cases also match the [Ww]indows filter but
# one still fails on windows-latest (the codex Stop entry's
# commandWindows is empty after the hook-JSON round-trip), so
# test_delivery stays in the informational `full (experimental)` leg
# with the other known-broken Windows areas (actas liveness #134,
# codex-bridge spawn EFTYPE, delivery path/sqlite). As each is fixed
# its file moves into this required leg.
- leg: windows tests
# Focused leg: the install-side native Windows helpers (#103). These
# are green on windows-latest today and are the candidate to promote
# to a required check. Other Windows-relevant tests stay in the
# informational full leg until they are fixed in separate PRs.
- leg: install helpers
filter: "[Ww]indows"
target: tests/test_install.bats tests/test_windows_powershell.bats
target: tests/test_install.bats
experimental: false
- leg: full (experimental)
filter: ""
Expand Down
52 changes: 24 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,34 +113,30 @@ The **command name** determines:

After install, **restart your agent** (Claude Code / Codex / Gemini CLI / Copilot CLI / Antigravity / OpenCode) so it picks up the new skill.

### Native Windows / PowerShell profile function

When `install.sh` runs under Git Bash on Windows, it installs the PowerShell
launcher under the skill tree. To enable an `agmsg` PowerShell command, add the
profile function from the PowerShell host you use:

```powershell
pwsh -ExecutionPolicy Bypass -File "$HOME\.agents\skills\agmsg\scripts\windows\install-agmsg.ps1"
```

Use `powershell` instead of `pwsh` if you use Windows PowerShell rather than
PowerShell 7; each host has its own profile path.

Then a PowerShell session can run:

```powershell
agmsg
agmsg history
agmsg team
agmsg send alice "hello from PowerShell"
agmsg mode turn
```

The PowerShell launcher delegates to the existing Bash scripts; it does not
reimplement agmsg logic or read the SQLite database directly. Git Bash and
`sqlite3` must both be available from the Windows environment. See
[Windows PowerShell launcher](docs/windows.md) for details and an optional
profile installer.
### Windows: Git Bash & Codex

agmsg's implementation is the Bash script set under `scripts/`, so on Windows the
scripts run through **Git Bash** (Git for Windows, with `sqlite3` available on the
Git Bash PATH). There is no PowerShell reimplementation.

- In Windows environments, Claude Code naturally works with Bash/Git Bash for
these script calls, but native Windows Codex commands and hooks often start
from PowerShell. Keep the actual agmsg execution path pinned to Git Bash so
all agents share the same `$HOME` and SQLite database.
- **Codex delivery hooks** are wrapped automatically. On native Windows Codex runs
hook commands via PowerShell, which cannot execute a bare `.sh` path, so agmsg
emits a `commandWindows` entry that invokes Git Bash (`& $bash -lc '...'`). No
setup needed — see `windows_wrap()` in `scripts/delivery.sh`.
- **Interactive / agent-typed commands** call the scripts through Git Bash, e.g.
`bash -lc 'scripts/whoami.sh "$(pwd)" codex'`.
- Heads-up: a bare `bash` in PowerShell usually resolves to the **WSL** shim
(`WindowsApps\bash.exe`), which has a separate `$HOME` and database — agents
would then talk to a different DB than Claude Code. Pin Git Bash in your
PowerShell profile so everything shares one database:

```powershell
Set-Alias bash 'C:\Program Files\Git\bin\bash.exe'
```

## First run

Expand Down
126 changes: 0 additions & 126 deletions docs/windows.md

This file was deleted.

9 changes: 0 additions & 9 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -127,11 +127,6 @@ install_windows_helpers() {

mkdir -p "$AGENTS_DIR"

local profile_installer="$SKILL_DIR/scripts/windows/install-agmsg.ps1"
if command -v cygpath >/dev/null 2>&1; then
profile_installer=$(cygpath -w "$profile_installer" 2>/dev/null || printf '%s' "$profile_installer")
fi

# Clean up legacy helpers created by the earlier native-Windows approaches.
local ps_shortcut="$AGENTS_DIR/$CMD_NAME.ps1"
if [ -f "$ps_shortcut" ] && grep -q "PowerShell shortcut for agmsg on native Windows" "$ps_shortcut" 2>/dev/null; then
Expand All @@ -147,10 +142,6 @@ install_windows_helpers() {
if [ "$removed_sqlite_shim" = true ]; then
rm -f "$AGENTS_DIR/run/sqlite3-shim.cache"
fi

echo " ~ To enable the PowerShell command, run this from the PowerShell host you use:"
echo " pwsh -ExecutionPolicy Bypass -File \"$profile_installer\" -FunctionName $CMD_NAME"
echo " # or use powershell.exe if you use Windows PowerShell instead of PowerShell 7"
}

# --- Parse args ---
Expand Down
1 change: 0 additions & 1 deletion llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ plugin marketplace (`/plugin marketplace add fujibee/agmsg`). All paths land at
- [docs/teams.md](docs/teams.md): team registry and membership model.
- [docs/spec/driver-interface.md](docs/spec/driver-interface.md): the formal driver contract.
- [docs/adr/](docs/adr/): architecture decision records (the "why").
- [docs/windows.md](docs/windows.md): native Windows / Git Bash / PowerShell notes.
- [docs/opencode.md](docs/opencode.md): OpenCode-specific integration.
- [CONTRIBUTING.md](CONTRIBUTING.md): how to propose changes.

Expand Down
132 changes: 0 additions & 132 deletions scripts/windows/agmsg.ps1

This file was deleted.

Loading
Loading