
Clawteam Dev
- 37 installs
- 5.5k repo stars
- Updated May 9, 2026
- hkuds/clawteam
Develop and validate ClawTeam inside its own repository using bootstrap scripts that standardize the clawteam command and wire local .agents/.claude skills.
About
A repository-development skill for changing, testing, and validating ClawTeam itself, using a bootstrap script that installs the local checkout and standardizes the clawteam command. A developer uses it when working on ClawTeam's own code and verifying multi-agent flows end-to-end.
- bootstrap_clawteam_dev.sh creates a fixed uv env and a shared clawteam command
- Repository-oriented, not a general end-user usage guide
Clawteam Dev by the numbers
- 37 all-time installs (skills.sh)
- Ranked #8,516 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/clawteam --skill clawteam-devAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 37 |
|---|---|
| repo stars | ★ 5.5k |
| Last updated | May 9, 2026 |
| Repository | hkuds/clawteam ↗ |
What it does
Develop and validate ClawTeam inside its own repository using bootstrap scripts that standardize the clawteam command and wire local .agents/.claude skills.
Files
ClawTeam Local Development
This skill is for developing and validating ClawTeam inside the ClawTeam repository. Use it when the task is about changing ClawTeam itself, testing local behavior, or verifying multi-agent workflows against the current checkout.
Development Bootstrap
Standardize the local development environment with the bootstrap script:
bash scripts/bootstrap_clawteam_dev.shThis script lives in scripts/bootstrap_clawteam_dev.sh inside this skill folder.
This script does all of the following:
- Creates a fixed uv environment at
~/.clawteam-venv - Installs the current repository into that environment with dev dependencies
- Writes
~/.local/bin/clawteamto point at the fixed environment - Adds a
clawteam()shell function block to~/.bashrc
After it finishes:
source ~/.bashrc
clawteam --versionUse this bootstrap whenever you want the same clawteam command across different Python environments on the machine.
Project Skill Wiring
To wire another local project so its ./.agents and ./.claude directories use this repository's local ClawTeam skills directly:
bash scripts/link_local_clawteam_skills.sh /path/to/projectThis script lives in scripts/link_local_clawteam_skills.sh inside this skill folder.
This creates these symlinks inside the target project:
./.agents/skills/clawteam./.claude/skills/clawteam
Run the same script again any time you want to refresh or recreate those links.
Typical Uses
- Run targeted local validation after code changes
- Reproduce a spawn / board / task / inbox / harness bug
- Smoke-test the real CLI in tmux or subprocess mode
- Review ClawTeam workflows end-to-end from the current repository checkout
Fast Validation
Prefer the smallest validation that proves the change.
ruff check clawteam/ tests/
pytest tests/<target_file>.py -qUse broader runs only when the change crosses modules:
pytest tests/test_cli_commands.py -q
pytest tests/test_spawn_backends.py -q
pytest tests/test_harness.py tests/test_event_bus.py -qPrerequisites
clawteamcommand availabletmuxavailable- A supported CLI agent such as
claudeorcodexif you are spawning real workers - Current directory is the ClawTeam git repo when testing worktree isolation or local source changes
Local Smoke Test
Use this when you need a real multi-agent workflow check instead of unit tests.
clawteam team spawn-team dev-smoke -d "Local ClawTeam smoke test" -n leader
clawteam task create dev-smoke "Smoke test worker" -o worker1 -p high
clawteam spawn --team dev-smoke --agent-name worker1 --task "Report your status to leader and mark the task completed when done."
clawteam board show dev-smoke
clawteam task wait dev-smoke --timeout 300 --poll-interval 5If you are validating harness behavior specifically:
clawteam harness conduct dev-harness \
--goal "Create a small implementation plan and execute it with one worker" \
--cli codex \
--agents 1Cleanup
Use the real ClawTeam commands instead of ad-hoc directory assumptions whenever possible:
clawteam team cleanup dev-smoke
clawteam team cleanup dev-harnessIf a crashed tmux session or worktree is left behind, clean it up explicitly after inspecting it.
Development Rules
- Prefer
clawteamcommands over editing state files directly. - Prefer targeted tests over broad end-to-end runs unless the change crosses spawn/runtime/workflow boundaries.
- Use
board,task wait, andteam statusto observe behavior before assuming a bug is in the spawn layer. - When testing agent coordination, keep the team small first: one leader and one or two workers.
- Only escalate to harness or full swarm tests when the lower-level task/spawn/inbox path already works.
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
SKILL_DIR="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
REPO_ROOT="$(cd -- "${SKILL_DIR}/../../.." && pwd)"
VENV_DIR="${HOME}/.clawteam-venv"
LAUNCHER="${HOME}/.local/bin/clawteam"
PYTHON_BIN="${VENV_DIR}/bin/python"
mkdir -p "${HOME}/.local/bin"
if ! command -v uv >/dev/null 2>&1; then
echo "Error: uv is not installed or not on PATH." >&2
exit 1
fi
uv venv "${VENV_DIR}"
(
cd "${REPO_ROOT}"
uv pip install --python "${PYTHON_BIN}" -e ".[dev]"
)
cat > "${LAUNCHER}" <<EOF
#!/usr/bin/env bash
exec ${PYTHON_BIN} -m clawteam.cli.commands "\$@"
EOF
chmod +x "${LAUNCHER}"
python - <<'PY'
from pathlib import Path
bashrc = Path.home() / ".bashrc"
launcher = Path.home() / ".clawteam-venv" / "bin" / "python"
block = f"""# >>> clawteam launcher >>>
clawteam() {{
{launcher} -m clawteam.cli.commands "$@"
}}
# <<< clawteam launcher <<<
"""
text = bashrc.read_text() if bashrc.exists() else ""
start = "# >>> clawteam launcher >>>"
end = "# <<< clawteam launcher <<<"
if start in text and end in text:
prefix = text.split(start, 1)[0]
suffix = text.split(end, 1)[1]
updated = prefix + block + suffix
else:
updated = text.rstrip() + ("\n\n" if text.strip() else "") + block
bashrc.write_text(updated)
PY
echo "ClawTeam development environment is ready."
echo "Launcher: ${LAUNCHER}"
echo "Venv: ${VENV_DIR}"
echo "Next: source ~/.bashrc && clawteam --version"
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
SKILL_DIR="$(cd -- "${SCRIPT_DIR}/.." && pwd)"
REPO_ROOT="$(cd -- "${SKILL_DIR}/../../.." && pwd)"
TARGET_DIR="${1:-$PWD}"
mkdir -p "${TARGET_DIR}/.agents/skills" "${TARGET_DIR}/.claude/skills"
link_path() {
local source_path="$1"
local target_path="$2"
if [ -e "${target_path}" ] && [ ! -L "${target_path}" ]; then
echo "Error: ${target_path} exists and is not a symlink." >&2
exit 1
fi
rm -f "${target_path}"
ln -s "${source_path}" "${target_path}"
}
rm -f "${TARGET_DIR}/.agents/skills/clawteam-dev" "${TARGET_DIR}/.claude/skills/clawteam-dev"
link_path "${REPO_ROOT}/skills/clawteam" "${TARGET_DIR}/.agents/skills/clawteam"
link_path "${REPO_ROOT}/skills/clawteam" "${TARGET_DIR}/.claude/skills/clawteam"
echo "Linked local ClawTeam skills into ${TARGET_DIR}"
echo " .agents/skills/clawteam -> ${REPO_ROOT}/skills/clawteam"
echo " .claude/skills/clawteam -> ${REPO_ROOT}/skills/clawteam"