public
nobgit
read
Codex
NobGit for Codex
Languages
Repository composition by tracked source files.
PowerShell
57%
Shell
43%
#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
plugin_path="$HOME/plugins/nobgit"
marketplace_path="$HOME/.agents/plugins/marketplace.json"
mkdir -p "$plugin_path" "$(dirname "$marketplace_path")"
cp -R "$repo_root/.codex-plugin" "$plugin_path/"
cp -R "$repo_root/assets" "$plugin_path/"
cp -R "$repo_root/skills" "$plugin_path/"
cp "$repo_root/.mcp.json" "$plugin_path/.mcp.json"
cp "$repo_root/readme.md" "$plugin_path/readme.md"
python3 - <<'PY'
import json
from pathlib import Path
marketplace_path = Path.home() / ".agents" / "plugins" / "marketplace.json"
if marketplace_path.exists():
marketplace = json.loads(marketplace_path.read_text())
else:
marketplace = {
"name": "personal",
"interface": {"displayName": "Personal"},
"plugins": [],
}
entry = {
"name": "nobgit",
"source": {
"source": "local",
"path": "./plugins/nobgit",
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL",
},
"category": "Developer Tools",
}
marketplace["plugins"] = [
plugin for plugin in marketplace.get("plugins", [])
if plugin.get("name") != "nobgit"
] + [entry]
marketplace_path.write_text(json.dumps(marketplace, indent=2) + "\n")
PY
if command -v codex >/dev/null 2>&1; then
codex plugin add nobgit@personal || true
else
echo "NobGit was added to the personal marketplace. Open Codex Plugins and install NobGit from Personal."
fi
echo "Done. Start a new Codex thread after installing NobGit."