agent-cli 0.82.3__tar.gz → 0.84.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agent_cli-0.82.3/agent_cli/dev/skill → agent_cli-0.84.0/.claude/skills/agent-cli-dev}/SKILL.md +64 -2
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.claude/skills/agent-cli-dev/examples.md +98 -0
- {agent_cli-0.82.3/.claude → agent_cli-0.84.0/.claude-plugin}/skills/agent-cli-dev/SKILL.md +64 -2
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.claude-plugin/skills/agent-cli-dev/examples.md +98 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.pre-commit-config.yaml +1 -1
- {agent_cli-0.82.3 → agent_cli-0.84.0}/PKG-INFO +17 -8
- {agent_cli-0.82.3 → agent_cli-0.84.0}/README.md +16 -7
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/rag_proxy.py +6 -5
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/config.py +4 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/cli.py +67 -3
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/launch.py +129 -25
- {agent_cli-0.82.3/.claude-plugin/skills/agent-cli-dev → agent_cli-0.84.0/agent_cli/dev/skill}/SKILL.md +64 -2
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/skill/examples.md +98 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/__init__.py +2 -1
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/base.py +10 -0
- agent_cli-0.84.0/agent_cli/dev/terminals/tmux.py +163 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/example-config.toml +22 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/hotkeys.py +3 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/macos-hotkeys/README.md +1 -1
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/architecture/rag.md +7 -1
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/dev.md +61 -9
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/install-hotkeys.md +6 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/rag-proxy.md +3 -2
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/configuration.md +3 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/getting-started.md +2 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/index.md +2 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/system-integration.md +2 -2
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_cli.py +116 -0
- agent_cli-0.84.0/tests/dev/test_launch.py +149 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_terminals.py +59 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_config_cmd.py +13 -0
- agent_cli-0.82.3/agent_cli/dev/terminals/tmux.py +0 -58
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.claude-plugin/README.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.claude-plugin/marketplace.json +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.claude-plugin/plugin.json +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.cursorrules +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.dockerignore +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.env.example +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/logo.svg +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/release-drafter.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/renovate.json +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/scripts/check_extras_sync.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/scripts/check_plugin_skill_sync.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/scripts/sync_extras.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/scripts/sync_requirements.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/automerge.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/docker.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/docs.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/markdown-code-runner.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/pytest.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/release-drafter.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/release.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.github/workflows/toc.yaml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.gitignore +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.jscpd.json +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.prompts/docs-review.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/.prompts/pr-review.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/CLAUDE.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/LICENSE +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/__main__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_extras.json +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/.gitkeep +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/audio.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/faster-whisper.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/kokoro.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/llm.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/memory.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/mlx-whisper.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/piper.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/rag.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/server.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/speed.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/vad.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/vectordb.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/whisper-transformers.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_requirements/wyoming.txt +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/_tools.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/_voice_agent_common.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/assistant.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/autocorrect.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/chat.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/memory/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/memory/add.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/memory/proxy.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/speak.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/transcribe.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/transcribe_live.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/agents/voice_edit.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/cli.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/config_cmd.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/constants.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/audio.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/audio_format.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/chroma.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/deps.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/openai_proxy.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/process.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/reranker.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/sse.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/transcription_logger.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/vad.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/core/watch.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/daemon/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/daemon/cli.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/_branch_name.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/_output.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/cleanup.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/aider.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/base.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/claude.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/codex.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/continue_dev.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/copilot.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/cursor_agent.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/gemini.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/opencode.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/coding_agents/registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/base.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/cursor.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/emacs.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/jetbrains.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/nano.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/neovim.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/sublime.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/vim.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/vscode.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/editors/zed.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/project.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/apple_terminal.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/gnome.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/iterm2.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/kitty.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/warp.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/terminals/zellij.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/dev/worktree.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/docs_gen.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/common.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/extras.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/launchd.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/service_config.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/services.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/install/systemd.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_files.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_filters.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_git.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_indexer.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_ingest.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_persistence.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_prompt.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_retrieval.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_store.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_streaming.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/_tasks.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/client.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/engine.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/entities.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/memory/models.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/opts.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/py.typed +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_indexer.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_indexing.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_prompt.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_retriever.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_store.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/client.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/engine.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/rag/models.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/.runtime/.gitkeep +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/linux-hotkeys/README.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/linux-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/linux-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/linux-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/macos-hotkeys/skhd-config-example +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/macos-hotkeys/toggle-autocorrect.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/macos-hotkeys/toggle-transcription.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/macos-hotkeys/toggle-voice-edit.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/nvidia-asr-server/README.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/nvidia-asr-server/pyproject.toml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/nvidia-asr-server/server.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/nvidia-asr-server/shell.nix +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/nvidia-asr-server/uv.lock +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/run-openwakeword.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/setup-linux-hotkeys.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/setup-linux.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/setup-macos-hotkeys.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/setup-macos.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/setup-windows.ps1 +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/start-all-services-windows.ps1 +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/scripts/start-all-services.sh +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/cli.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/common.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/model_manager.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/model_registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/proxy/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/proxy/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/streaming.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/backends/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/backends/base.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/backends/kokoro.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/backends/piper.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/model_manager.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/model_registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/tts/wyoming_handler.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/backends/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/backends/base.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/backends/faster_whisper.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/backends/mlx.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/backends/transformers.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/languages.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/model_manager.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/model_registry.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/server/whisper/wyoming_handler.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/_wyoming_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/asr.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/llm.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/tts.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/agent_cli/services/wake_word.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/docker-compose.yml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/memory-proxy.Dockerfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/rag-proxy.Dockerfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/transcribe-proxy.Dockerfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/tts.Dockerfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docker/whisper.Dockerfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/CNAME +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/architecture/index.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/architecture/memory.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/assistant.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/autocorrect.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/chat.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/config.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/daemon.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/index.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/install-extras.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/install-services.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/memory.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/server/index.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/server/transcribe-proxy.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/server/tts.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/server/whisper.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/speak.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/start-services.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/transcribe-live.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/transcribe.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/commands/voice-edit.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/iOS_Shortcut_Guide.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/docker.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/index.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/linux.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/macos.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/nixos.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/installation/windows.md +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/logo-clean.svg +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/docs/run_markdown_code_runner.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/example.agent-cli-config.toml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/justfile +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/pyproject.toml +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/shell.nix +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_fix_my_text.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_interactive.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_interactive_extra.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_memory_add.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_speak.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_speak_e2e.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_transcribe.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_transcribe_agent.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_transcribe_e2e.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_transcribe_live.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_transcribe_recovery.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_tts_common.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_tts_common_extra.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_voice_agent_common.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_voice_edit.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_voice_edit_e2e.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/agents/test_wake_word_assistant.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/conftest.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_audio.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_audio_format.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_chroma.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_sse.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_vad.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/core/test_watch.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_coding_agents.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_editors.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_project.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_verification.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/dev/test_worktree.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/install/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/install/test_extras.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_api_health.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_api_integration_liveish.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_client.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_engine.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_files.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_filters.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_git_integration.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_indexer.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_memory_integration.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_proxy_passthrough.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_store.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/memory/test_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/mocks/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/mocks/audio.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/mocks/llm.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/mocks/wyoming.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/__init__.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_engine.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_history.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_indexer.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_indexing.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_rag_client.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_rag_integration_liveish.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_rag_proxy_passthrough.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_retriever.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_store.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/rag/test_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_api.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_api_integration.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_asr.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_asr_recovery.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_audio_e2e.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_cli.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_config.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_daemon.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_docs_gen.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_env_vars.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_json_output.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_llm.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_llm_gemini.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_memory_tools.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_mlx_backend.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_process_manager.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_requires_extras.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_server_streaming.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_server_tts.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_server_whisper.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_services.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_tools.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_transformers_backend.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_tts.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_wake_word.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/tests/test_wyoming_utils.py +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/uv.lock +0 -0
- {agent_cli-0.82.3 → agent_cli-0.84.0}/zensical.toml +0 -0
{agent_cli-0.82.3/agent_cli/dev/skill → agent_cli-0.84.0/.claude/skills/agent-cli-dev}/SKILL.md
RENAMED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-cli-dev
|
|
3
|
-
description: Spawns AI coding agents in isolated git worktrees. Use when the user asks to spawn or launch an agent, delegate a task to a separate agent,
|
|
3
|
+
description: Spawns AI coding agents in isolated git worktrees. Use when the user asks to spawn or launch an agent, delegate a task to a separate agent, or parallelize development across features. Only create a worktree without starting an agent if the user explicitly wants setup only.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Parallel Development with agent-cli dev
|
|
7
7
|
|
|
8
8
|
This skill teaches you how to spawn parallel AI coding agents in isolated git worktrees using the `agent-cli dev` command.
|
|
9
9
|
|
|
10
|
+
`agent-cli dev` supports two complementary patterns:
|
|
11
|
+
- Separate worktrees for isolated implementation/review tasks
|
|
12
|
+
- Multiple agents on the same worktree using `dev agent -m tmux`
|
|
13
|
+
|
|
10
14
|
## Installation
|
|
11
15
|
|
|
12
16
|
If `agent-cli` is not available, install it first:
|
|
@@ -58,6 +62,16 @@ This creates:
|
|
|
58
62
|
|
|
59
63
|
**Important**: Use `--prompt-file` for prompts longer than a single line. The `--prompt` option passes text through the shell, which can cause issues with special characters (exclamation marks, dollar signs, backticks, quotes) in ZSH and other shells. Using `--prompt-file` avoids all shell quoting issues.
|
|
60
64
|
|
|
65
|
+
## Automation rule
|
|
66
|
+
|
|
67
|
+
When an assistant is executing this workflow on the user's behalf, the spawn is not complete unless the agent receives a prompt at launch time.
|
|
68
|
+
|
|
69
|
+
- Prefer `--prompt-file`; create the prompt file first, then launch the agent
|
|
70
|
+
- Use `dev new ... --agent --prompt-file ...` for a new delegated task
|
|
71
|
+
- Use `dev agent ... --prompt-file ...` for another agent in an existing worktree
|
|
72
|
+
- Do not stop after `dev new ...` alone if the user's intent was to delegate work immediately
|
|
73
|
+
- Do not run `dev new ... --agent` or `dev agent ... -m tmux` without `--prompt` or `--prompt-file` unless the user explicitly wants an interactive session that they will drive manually
|
|
74
|
+
|
|
61
75
|
## Writing effective prompts for spawned agents
|
|
62
76
|
|
|
63
77
|
Spawned agents work in isolation, so prompts must be **self-contained**. Include:
|
|
@@ -76,7 +90,7 @@ For any prompt longer than a single sentence:
|
|
|
76
90
|
|
|
77
91
|
Example workflow:
|
|
78
92
|
```bash
|
|
79
|
-
# 1. Write prompt to file
|
|
93
|
+
# 1. Write prompt to file
|
|
80
94
|
# 2. Spawn agent with the file
|
|
81
95
|
agent-cli dev new my-feature --agent --prompt-file .claude/spawn-prompt.md
|
|
82
96
|
# 3. Optionally clean up
|
|
@@ -114,6 +128,54 @@ agent-cli dev run <branch-name> cat .claude/REPORT.md
|
|
|
114
128
|
agent-cli dev editor <branch-name>
|
|
115
129
|
```
|
|
116
130
|
|
|
131
|
+
## Same-branch multi-agent workflow
|
|
132
|
+
|
|
133
|
+
Use this when several agents should inspect or validate the same code at once without separate worktrees.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Create the worktree once. This step only prepares the shared workspace.
|
|
137
|
+
agent-cli dev new review-auth --from HEAD
|
|
138
|
+
|
|
139
|
+
# Then launch the actual agents with prompts.
|
|
140
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-security.md
|
|
141
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-performance.md
|
|
142
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-tests.md
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Key rules for same-worktree launches:
|
|
146
|
+
- Use `dev agent`, not `dev new`, after the worktree already exists
|
|
147
|
+
- Use `-m tmux` for headless or scripted launching; it works even when not already inside tmux
|
|
148
|
+
- Each launch joins the same deterministic repo-scoped tmux session, so related agents stay grouped together
|
|
149
|
+
- Ask each agent to write to a unique report path such as `.claude/REPORT-security-<run-id>.md` or `.claude/REPORT-tests-<run-id>.md`
|
|
150
|
+
- If you rerun the same prompt repeatedly, include a timestamp or other run id in the report filename so later runs do not overwrite earlier ones
|
|
151
|
+
- Do not rely on `.claude/TASK.md` as per-agent state in shared worktrees; later launches overwrite it
|
|
152
|
+
|
|
153
|
+
### Prompt guidance for shared worktrees
|
|
154
|
+
|
|
155
|
+
When multiple agents share a worktree, explicitly assign both a focus area and a unique report file. If you rerun the same review prompt often, prefer a timestamped filename such as `.claude/REPORT-security-20260319-153045-123.md`.
|
|
156
|
+
|
|
157
|
+
Prompt pattern:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Review the auth module for security issues only.
|
|
161
|
+
|
|
162
|
+
When complete, write findings to .claude/REPORT-security-20260319-153045-123.md including:
|
|
163
|
+
- Summary
|
|
164
|
+
- Issues found with file/line references
|
|
165
|
+
- Suggested fixes
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Headless/scripted orchestration
|
|
169
|
+
|
|
170
|
+
For non-interactive contexts (scripts, cron jobs, other assistants), combine `--prompt-file` with `-m tmux`:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
agent-cli dev new validation-a --from HEAD --agent --with-agent codex -m tmux \
|
|
174
|
+
--prompt-file .claude/validation-a.md
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
This works without an attached terminal. `agent-cli` creates or reuses a detached tmux session and returns a pane handle plus attach command.
|
|
178
|
+
|
|
117
179
|
## Example: Multi-feature implementation
|
|
118
180
|
|
|
119
181
|
If asked to implement auth, payments, and notifications:
|
|
@@ -8,6 +8,8 @@ Real-world scenarios for spawning parallel AI coding agents, optimized for Claud
|
|
|
8
8
|
> # Write prompt to file, then spawn
|
|
9
9
|
> agent-cli dev new my-feature --agent --prompt-file .claude/spawn-prompt.md
|
|
10
10
|
> ```
|
|
11
|
+
>
|
|
12
|
+
> When an assistant is executing these commands, do not launch `dev new` or `dev agent` without `--prompt` or `--prompt-file` unless the user explicitly wants a manual interactive session.
|
|
11
13
|
|
|
12
14
|
## Prompt structure guidelines
|
|
13
15
|
|
|
@@ -19,6 +21,7 @@ Each prompt for a spawned agent should follow this structure:
|
|
|
19
21
|
4. **Context with motivation** - Explain why patterns matter
|
|
20
22
|
5. **Focused scope** - Keep solutions minimal, implement only what's requested
|
|
21
23
|
6. **Structured report** - Write conclusions to `.claude/REPORT.md`
|
|
24
|
+
7. **No interactive gap** - The launch command itself should include `--prompt` or `--prompt-file` so the agent starts working immediately
|
|
22
25
|
|
|
23
26
|
## Scenario 1: Code review of current branch
|
|
24
27
|
|
|
@@ -524,6 +527,96 @@ When complete, write to .claude/REPORT.md:
|
|
|
524
527
|
</report>"
|
|
525
528
|
```
|
|
526
529
|
|
|
530
|
+
## Scenario 6: Multi-reviewer on the same branch
|
|
531
|
+
|
|
532
|
+
**User request**: "Get 3 agents to review this code" or "Run multiple reviewers on this branch"
|
|
533
|
+
|
|
534
|
+
**Strategy**: Create one review worktree from the current branch, then launch several agents into that same worktree with different focus areas.
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
run_id="$(python -c 'import time; print(int(time.time() * 1000))')"
|
|
538
|
+
|
|
539
|
+
# Create the shared review worktree once. This does not start an agent yet.
|
|
540
|
+
agent-cli dev new review-auth --from HEAD
|
|
541
|
+
|
|
542
|
+
# Launch three reviewers into the same worktree/session
|
|
543
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for security issues only.
|
|
544
|
+
|
|
545
|
+
<scope>
|
|
546
|
+
Do not fix code. Review only.
|
|
547
|
+
</scope>
|
|
548
|
+
|
|
549
|
+
<report>
|
|
550
|
+
Write findings to .claude/REPORT-security-$run_id.md:
|
|
551
|
+
- Summary
|
|
552
|
+
- Issues with file:line references
|
|
553
|
+
- Suggested fixes
|
|
554
|
+
</report>"
|
|
555
|
+
|
|
556
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for performance issues only.
|
|
557
|
+
|
|
558
|
+
<scope>
|
|
559
|
+
Review only. Focus on query patterns, repeated work, and unnecessary allocations.
|
|
560
|
+
</scope>
|
|
561
|
+
|
|
562
|
+
<report>
|
|
563
|
+
Write findings to .claude/REPORT-performance-$run_id.md:
|
|
564
|
+
- Summary
|
|
565
|
+
- Issues with file:line references
|
|
566
|
+
- Suggested fixes
|
|
567
|
+
</report>"
|
|
568
|
+
|
|
569
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for test coverage gaps only.
|
|
570
|
+
|
|
571
|
+
<scope>
|
|
572
|
+
Review only. Identify missing or weak tests.
|
|
573
|
+
</scope>
|
|
574
|
+
|
|
575
|
+
<report>
|
|
576
|
+
Write findings to .claude/REPORT-tests-$run_id.md:
|
|
577
|
+
- Summary
|
|
578
|
+
- Missing test cases
|
|
579
|
+
- Suggested follow-up tests
|
|
580
|
+
</report>"
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
**Important**:
|
|
584
|
+
- Same-worktree launches should use unique report files, not `.claude/REPORT.md`
|
|
585
|
+
- If you rerun the same prompt often, include a timestamp or run id in the filename so reports do not get replaced
|
|
586
|
+
- `-m tmux` works even when the caller is not already inside tmux
|
|
587
|
+
- All three agents land in the same deterministic tmux session for that repo
|
|
588
|
+
- `.claude/TASK.md` is shared state and may be overwritten by later launches, so keep prompt files outside that convention
|
|
589
|
+
|
|
590
|
+
## Scenario 7: Parallel test validation
|
|
591
|
+
|
|
592
|
+
**User request**: "Run the test checklist across 8 sections in parallel"
|
|
593
|
+
|
|
594
|
+
**Strategy**: Create one worktree per section, then launch each validation agent headlessly in tmux so the workflow works from scripts or non-terminal orchestrators.
|
|
595
|
+
|
|
596
|
+
```bash
|
|
597
|
+
for section in 1 2 3 4 5 6 7 8; do
|
|
598
|
+
agent-cli dev new "test-section-$section" --from HEAD --agent --with-agent codex -m tmux \
|
|
599
|
+
--prompt-file ".claude/test-section-$section.md"
|
|
600
|
+
done
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
Monitor and collect results:
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
# Track the worktrees
|
|
607
|
+
agent-cli dev status
|
|
608
|
+
|
|
609
|
+
# Read each report after completion
|
|
610
|
+
for section in 1 2 3 4 5 6 7 8; do
|
|
611
|
+
agent-cli dev run "test-section-$section" cat .claude/REPORT.md
|
|
612
|
+
done
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**When writing the per-section prompts**:
|
|
616
|
+
- Assign one checklist section per agent
|
|
617
|
+
- Require real test execution where possible
|
|
618
|
+
- Require a structured `.claude/REPORT.md` with pass/fail status, evidence, and follow-up actions
|
|
619
|
+
|
|
527
620
|
## Reviewing results
|
|
528
621
|
|
|
529
622
|
After agents complete their work:
|
|
@@ -569,3 +662,8 @@ Any items that need human review or clarification
|
|
|
569
662
|
```
|
|
570
663
|
|
|
571
664
|
This consistent format makes it easy to review work from multiple agents.
|
|
665
|
+
|
|
666
|
+
For shared-worktree runs, keep the same structure but use unique filenames such as:
|
|
667
|
+
- `.claude/REPORT-security.md`
|
|
668
|
+
- `.claude/REPORT-performance.md`
|
|
669
|
+
- `.claude/REPORT-tests.md`
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agent-cli-dev
|
|
3
|
-
description: Spawns AI coding agents in isolated git worktrees. Use when the user asks to spawn or launch an agent, delegate a task to a separate agent,
|
|
3
|
+
description: Spawns AI coding agents in isolated git worktrees. Use when the user asks to spawn or launch an agent, delegate a task to a separate agent, or parallelize development across features. Only create a worktree without starting an agent if the user explicitly wants setup only.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Parallel Development with agent-cli dev
|
|
7
7
|
|
|
8
8
|
This skill teaches you how to spawn parallel AI coding agents in isolated git worktrees using the `agent-cli dev` command.
|
|
9
9
|
|
|
10
|
+
`agent-cli dev` supports two complementary patterns:
|
|
11
|
+
- Separate worktrees for isolated implementation/review tasks
|
|
12
|
+
- Multiple agents on the same worktree using `dev agent -m tmux`
|
|
13
|
+
|
|
10
14
|
## Installation
|
|
11
15
|
|
|
12
16
|
If `agent-cli` is not available, install it first:
|
|
@@ -58,6 +62,16 @@ This creates:
|
|
|
58
62
|
|
|
59
63
|
**Important**: Use `--prompt-file` for prompts longer than a single line. The `--prompt` option passes text through the shell, which can cause issues with special characters (exclamation marks, dollar signs, backticks, quotes) in ZSH and other shells. Using `--prompt-file` avoids all shell quoting issues.
|
|
60
64
|
|
|
65
|
+
## Automation rule
|
|
66
|
+
|
|
67
|
+
When an assistant is executing this workflow on the user's behalf, the spawn is not complete unless the agent receives a prompt at launch time.
|
|
68
|
+
|
|
69
|
+
- Prefer `--prompt-file`; create the prompt file first, then launch the agent
|
|
70
|
+
- Use `dev new ... --agent --prompt-file ...` for a new delegated task
|
|
71
|
+
- Use `dev agent ... --prompt-file ...` for another agent in an existing worktree
|
|
72
|
+
- Do not stop after `dev new ...` alone if the user's intent was to delegate work immediately
|
|
73
|
+
- Do not run `dev new ... --agent` or `dev agent ... -m tmux` without `--prompt` or `--prompt-file` unless the user explicitly wants an interactive session that they will drive manually
|
|
74
|
+
|
|
61
75
|
## Writing effective prompts for spawned agents
|
|
62
76
|
|
|
63
77
|
Spawned agents work in isolation, so prompts must be **self-contained**. Include:
|
|
@@ -76,7 +90,7 @@ For any prompt longer than a single sentence:
|
|
|
76
90
|
|
|
77
91
|
Example workflow:
|
|
78
92
|
```bash
|
|
79
|
-
# 1. Write prompt to file
|
|
93
|
+
# 1. Write prompt to file
|
|
80
94
|
# 2. Spawn agent with the file
|
|
81
95
|
agent-cli dev new my-feature --agent --prompt-file .claude/spawn-prompt.md
|
|
82
96
|
# 3. Optionally clean up
|
|
@@ -114,6 +128,54 @@ agent-cli dev run <branch-name> cat .claude/REPORT.md
|
|
|
114
128
|
agent-cli dev editor <branch-name>
|
|
115
129
|
```
|
|
116
130
|
|
|
131
|
+
## Same-branch multi-agent workflow
|
|
132
|
+
|
|
133
|
+
Use this when several agents should inspect or validate the same code at once without separate worktrees.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# Create the worktree once. This step only prepares the shared workspace.
|
|
137
|
+
agent-cli dev new review-auth --from HEAD
|
|
138
|
+
|
|
139
|
+
# Then launch the actual agents with prompts.
|
|
140
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-security.md
|
|
141
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-performance.md
|
|
142
|
+
agent-cli dev agent review-auth -m tmux --prompt-file .claude/review-tests.md
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Key rules for same-worktree launches:
|
|
146
|
+
- Use `dev agent`, not `dev new`, after the worktree already exists
|
|
147
|
+
- Use `-m tmux` for headless or scripted launching; it works even when not already inside tmux
|
|
148
|
+
- Each launch joins the same deterministic repo-scoped tmux session, so related agents stay grouped together
|
|
149
|
+
- Ask each agent to write to a unique report path such as `.claude/REPORT-security-<run-id>.md` or `.claude/REPORT-tests-<run-id>.md`
|
|
150
|
+
- If you rerun the same prompt repeatedly, include a timestamp or other run id in the report filename so later runs do not overwrite earlier ones
|
|
151
|
+
- Do not rely on `.claude/TASK.md` as per-agent state in shared worktrees; later launches overwrite it
|
|
152
|
+
|
|
153
|
+
### Prompt guidance for shared worktrees
|
|
154
|
+
|
|
155
|
+
When multiple agents share a worktree, explicitly assign both a focus area and a unique report file. If you rerun the same review prompt often, prefer a timestamped filename such as `.claude/REPORT-security-20260319-153045-123.md`.
|
|
156
|
+
|
|
157
|
+
Prompt pattern:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Review the auth module for security issues only.
|
|
161
|
+
|
|
162
|
+
When complete, write findings to .claude/REPORT-security-20260319-153045-123.md including:
|
|
163
|
+
- Summary
|
|
164
|
+
- Issues found with file/line references
|
|
165
|
+
- Suggested fixes
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Headless/scripted orchestration
|
|
169
|
+
|
|
170
|
+
For non-interactive contexts (scripts, cron jobs, other assistants), combine `--prompt-file` with `-m tmux`:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
agent-cli dev new validation-a --from HEAD --agent --with-agent codex -m tmux \
|
|
174
|
+
--prompt-file .claude/validation-a.md
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
This works without an attached terminal. `agent-cli` creates or reuses a detached tmux session and returns a pane handle plus attach command.
|
|
178
|
+
|
|
117
179
|
## Example: Multi-feature implementation
|
|
118
180
|
|
|
119
181
|
If asked to implement auth, payments, and notifications:
|
|
@@ -8,6 +8,8 @@ Real-world scenarios for spawning parallel AI coding agents, optimized for Claud
|
|
|
8
8
|
> # Write prompt to file, then spawn
|
|
9
9
|
> agent-cli dev new my-feature --agent --prompt-file .claude/spawn-prompt.md
|
|
10
10
|
> ```
|
|
11
|
+
>
|
|
12
|
+
> When an assistant is executing these commands, do not launch `dev new` or `dev agent` without `--prompt` or `--prompt-file` unless the user explicitly wants a manual interactive session.
|
|
11
13
|
|
|
12
14
|
## Prompt structure guidelines
|
|
13
15
|
|
|
@@ -19,6 +21,7 @@ Each prompt for a spawned agent should follow this structure:
|
|
|
19
21
|
4. **Context with motivation** - Explain why patterns matter
|
|
20
22
|
5. **Focused scope** - Keep solutions minimal, implement only what's requested
|
|
21
23
|
6. **Structured report** - Write conclusions to `.claude/REPORT.md`
|
|
24
|
+
7. **No interactive gap** - The launch command itself should include `--prompt` or `--prompt-file` so the agent starts working immediately
|
|
22
25
|
|
|
23
26
|
## Scenario 1: Code review of current branch
|
|
24
27
|
|
|
@@ -524,6 +527,96 @@ When complete, write to .claude/REPORT.md:
|
|
|
524
527
|
</report>"
|
|
525
528
|
```
|
|
526
529
|
|
|
530
|
+
## Scenario 6: Multi-reviewer on the same branch
|
|
531
|
+
|
|
532
|
+
**User request**: "Get 3 agents to review this code" or "Run multiple reviewers on this branch"
|
|
533
|
+
|
|
534
|
+
**Strategy**: Create one review worktree from the current branch, then launch several agents into that same worktree with different focus areas.
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
run_id="$(python -c 'import time; print(int(time.time() * 1000))')"
|
|
538
|
+
|
|
539
|
+
# Create the shared review worktree once. This does not start an agent yet.
|
|
540
|
+
agent-cli dev new review-auth --from HEAD
|
|
541
|
+
|
|
542
|
+
# Launch three reviewers into the same worktree/session
|
|
543
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for security issues only.
|
|
544
|
+
|
|
545
|
+
<scope>
|
|
546
|
+
Do not fix code. Review only.
|
|
547
|
+
</scope>
|
|
548
|
+
|
|
549
|
+
<report>
|
|
550
|
+
Write findings to .claude/REPORT-security-$run_id.md:
|
|
551
|
+
- Summary
|
|
552
|
+
- Issues with file:line references
|
|
553
|
+
- Suggested fixes
|
|
554
|
+
</report>"
|
|
555
|
+
|
|
556
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for performance issues only.
|
|
557
|
+
|
|
558
|
+
<scope>
|
|
559
|
+
Review only. Focus on query patterns, repeated work, and unnecessary allocations.
|
|
560
|
+
</scope>
|
|
561
|
+
|
|
562
|
+
<report>
|
|
563
|
+
Write findings to .claude/REPORT-performance-$run_id.md:
|
|
564
|
+
- Summary
|
|
565
|
+
- Issues with file:line references
|
|
566
|
+
- Suggested fixes
|
|
567
|
+
</report>"
|
|
568
|
+
|
|
569
|
+
agent-cli dev agent review-auth -m tmux --prompt "Review the auth module for test coverage gaps only.
|
|
570
|
+
|
|
571
|
+
<scope>
|
|
572
|
+
Review only. Identify missing or weak tests.
|
|
573
|
+
</scope>
|
|
574
|
+
|
|
575
|
+
<report>
|
|
576
|
+
Write findings to .claude/REPORT-tests-$run_id.md:
|
|
577
|
+
- Summary
|
|
578
|
+
- Missing test cases
|
|
579
|
+
- Suggested follow-up tests
|
|
580
|
+
</report>"
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
**Important**:
|
|
584
|
+
- Same-worktree launches should use unique report files, not `.claude/REPORT.md`
|
|
585
|
+
- If you rerun the same prompt often, include a timestamp or run id in the filename so reports do not get replaced
|
|
586
|
+
- `-m tmux` works even when the caller is not already inside tmux
|
|
587
|
+
- All three agents land in the same deterministic tmux session for that repo
|
|
588
|
+
- `.claude/TASK.md` is shared state and may be overwritten by later launches, so keep prompt files outside that convention
|
|
589
|
+
|
|
590
|
+
## Scenario 7: Parallel test validation
|
|
591
|
+
|
|
592
|
+
**User request**: "Run the test checklist across 8 sections in parallel"
|
|
593
|
+
|
|
594
|
+
**Strategy**: Create one worktree per section, then launch each validation agent headlessly in tmux so the workflow works from scripts or non-terminal orchestrators.
|
|
595
|
+
|
|
596
|
+
```bash
|
|
597
|
+
for section in 1 2 3 4 5 6 7 8; do
|
|
598
|
+
agent-cli dev new "test-section-$section" --from HEAD --agent --with-agent codex -m tmux \
|
|
599
|
+
--prompt-file ".claude/test-section-$section.md"
|
|
600
|
+
done
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
Monitor and collect results:
|
|
604
|
+
|
|
605
|
+
```bash
|
|
606
|
+
# Track the worktrees
|
|
607
|
+
agent-cli dev status
|
|
608
|
+
|
|
609
|
+
# Read each report after completion
|
|
610
|
+
for section in 1 2 3 4 5 6 7 8; do
|
|
611
|
+
agent-cli dev run "test-section-$section" cat .claude/REPORT.md
|
|
612
|
+
done
|
|
613
|
+
```
|
|
614
|
+
|
|
615
|
+
**When writing the per-section prompts**:
|
|
616
|
+
- Assign one checklist section per agent
|
|
617
|
+
- Require real test execution where possible
|
|
618
|
+
- Require a structured `.claude/REPORT.md` with pass/fail status, evidence, and follow-up actions
|
|
619
|
+
|
|
527
620
|
## Reviewing results
|
|
528
621
|
|
|
529
622
|
After agents complete their work:
|
|
@@ -569,3 +662,8 @@ Any items that need human review or clarification
|
|
|
569
662
|
```
|
|
570
663
|
|
|
571
664
|
This consistent format makes it easy to review work from multiple agents.
|
|
665
|
+
|
|
666
|
+
For shared-worktree runs, keep the same structure but use unique filenames such as:
|
|
667
|
+
- `.claude/REPORT-security.md`
|
|
668
|
+
- `.claude/REPORT-performance.md`
|
|
669
|
+
- `.claude/REPORT-tests.md`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.84.0
|
|
4
4
|
Summary: A suite of AI-powered command-line tools for text correction, audio transcription, and voice assistance.
|
|
5
5
|
Project-URL: Homepage, https://github.com/basnijholt/agent-cli
|
|
6
6
|
Author-email: Bas Nijholt <bas@nijho.lt>
|
|
@@ -225,6 +225,8 @@ agent-cli install-hotkeys
|
|
|
225
225
|
agent-cli autocorrect "this has an eror"
|
|
226
226
|
```
|
|
227
227
|
|
|
228
|
+
`install-hotkeys` also installs the required `audio` and `llm` extras if they are missing.
|
|
229
|
+
|
|
228
230
|
The setup scripts automatically install:
|
|
229
231
|
- ✅ Package managers (Homebrew/uv) if needed
|
|
230
232
|
- ✅ All AI services (Ollama, Whisper, TTS, etc.)
|
|
@@ -376,7 +378,7 @@ This script automatically:
|
|
|
376
378
|
> After setup, you may need to grant Accessibility permissions to skhd in System Settings → Privacy & Security → Accessibility
|
|
377
379
|
|
|
378
380
|
> [!TIP]
|
|
379
|
-
> To keep the
|
|
381
|
+
> To keep the recording-status notification visible for the whole flow, open System Settings → Notifications → *terminal-notifier* and set the Alert style to **Persistent** (or choose **Alerts** on older macOS versions).
|
|
380
382
|
> Also enable "Allow notification when mirroring or sharing the display".
|
|
381
383
|
> The hotkey scripts keep only the recording notification pinned; status and result toasts auto-dismiss.
|
|
382
384
|
|
|
@@ -1978,13 +1980,14 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
1978
1980
|
**Workflow:**
|
|
1979
1981
|
|
|
1980
1982
|
1. Start the server, pointing it to your documents folder and your local LLM (e.g., Ollama or llama.cpp) or OpenAI.
|
|
1981
|
-
2. The server watches the folder and automatically indexes any text/markdown/PDF files into a local ChromaDB vector store.
|
|
1983
|
+
2. The server watches the folder and automatically indexes any text/markdown/PDF files into a local ChromaDB vector store, skipping paths matched by `.gitignore` files in the docs folder and, when inside a git repo, its parent directories up to the repo root.
|
|
1982
1984
|
3. Point any OpenAI-compatible client (including `agent-cli chat`) to this server's URL.
|
|
1983
1985
|
4. When you ask a question, the server retrieves relevant document chunks, adds them to the prompt, and forwards it to the LLM.
|
|
1984
1986
|
|
|
1985
1987
|
**How to Use It:**
|
|
1986
1988
|
|
|
1987
1989
|
- **Install RAG deps first**: `pip install "agent-cli[rag]"` (or, from the repo, `uv sync --extra rag`)
|
|
1990
|
+
- **Note on ignored files**: `.gitignore` rules in your docs folder are respected during indexing; if the docs folder is inside a git repo, parent `.gitignore` files up to the repo root are also applied. Use `!pattern` entries to re-include paths when needed
|
|
1988
1991
|
- **Start Server (Local LLM)**: `agent-cli rag-proxy --docs-folder ~/Documents/Notes --openai-base-url http://localhost:11434/v1 --port 8000`
|
|
1989
1992
|
- **Start Server (OpenAI)**: `agent-cli rag-proxy --docs-folder ~/Documents/Notes --openai-api-key sk-...`
|
|
1990
1993
|
- **Use with Agent-CLI**: `agent-cli chat --openai-base-url http://localhost:8000/v1 --llm-provider openai`
|
|
@@ -2022,10 +2025,12 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
2022
2025
|
How it works:
|
|
2023
2026
|
|
|
2024
2027
|
1 Documents in --docs-folder are chunked, embedded, and stored in ChromaDB
|
|
2025
|
-
2
|
|
2026
|
-
|
|
2027
|
-
|
|
2028
|
-
|
|
2028
|
+
2 Paths matched by .gitignore files in the docs folder and, when inside a git repo, its
|
|
2029
|
+
parents up to the repo root are skipped
|
|
2030
|
+
3 A file watcher auto-reindexes when files change
|
|
2031
|
+
4 Chat requests trigger a semantic search for relevant chunks
|
|
2032
|
+
5 Retrieved context is injected into the prompt before forwarding to the LLM
|
|
2033
|
+
6 Responses include a rag_sources field listing which documents were used
|
|
2029
2034
|
|
|
2030
2035
|
Supported file formats:
|
|
2031
2036
|
|
|
@@ -2051,7 +2056,11 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
2051
2056
|
╭─ RAG Configuration ────────────────────────────────────────────────────────────────────╮
|
|
2052
2057
|
│ --docs-folder PATH Folder to watch for documents. Files are │
|
|
2053
2058
|
│ auto-indexed on startup and when changed. │
|
|
2054
|
-
│
|
|
2059
|
+
│ Paths matching .gitignore files in this │
|
|
2060
|
+
│ folder and, when inside a git repo, its │
|
|
2061
|
+
│ parent directories up to the repo root are │
|
|
2062
|
+
│ skipped. Must not overlap with │
|
|
2063
|
+
│ --chroma-path. │
|
|
2055
2064
|
│ [default: ./rag_docs] │
|
|
2056
2065
|
│ --chroma-path PATH ChromaDB storage directory for vector │
|
|
2057
2066
|
│ embeddings. Must be separate from │
|
|
@@ -122,6 +122,8 @@ agent-cli install-hotkeys
|
|
|
122
122
|
agent-cli autocorrect "this has an eror"
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
+
`install-hotkeys` also installs the required `audio` and `llm` extras if they are missing.
|
|
126
|
+
|
|
125
127
|
The setup scripts automatically install:
|
|
126
128
|
- ✅ Package managers (Homebrew/uv) if needed
|
|
127
129
|
- ✅ All AI services (Ollama, Whisper, TTS, etc.)
|
|
@@ -273,7 +275,7 @@ This script automatically:
|
|
|
273
275
|
> After setup, you may need to grant Accessibility permissions to skhd in System Settings → Privacy & Security → Accessibility
|
|
274
276
|
|
|
275
277
|
> [!TIP]
|
|
276
|
-
> To keep the
|
|
278
|
+
> To keep the recording-status notification visible for the whole flow, open System Settings → Notifications → *terminal-notifier* and set the Alert style to **Persistent** (or choose **Alerts** on older macOS versions).
|
|
277
279
|
> Also enable "Allow notification when mirroring or sharing the display".
|
|
278
280
|
> The hotkey scripts keep only the recording notification pinned; status and result toasts auto-dismiss.
|
|
279
281
|
|
|
@@ -1875,13 +1877,14 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
1875
1877
|
**Workflow:**
|
|
1876
1878
|
|
|
1877
1879
|
1. Start the server, pointing it to your documents folder and your local LLM (e.g., Ollama or llama.cpp) or OpenAI.
|
|
1878
|
-
2. The server watches the folder and automatically indexes any text/markdown/PDF files into a local ChromaDB vector store.
|
|
1880
|
+
2. The server watches the folder and automatically indexes any text/markdown/PDF files into a local ChromaDB vector store, skipping paths matched by `.gitignore` files in the docs folder and, when inside a git repo, its parent directories up to the repo root.
|
|
1879
1881
|
3. Point any OpenAI-compatible client (including `agent-cli chat`) to this server's URL.
|
|
1880
1882
|
4. When you ask a question, the server retrieves relevant document chunks, adds them to the prompt, and forwards it to the LLM.
|
|
1881
1883
|
|
|
1882
1884
|
**How to Use It:**
|
|
1883
1885
|
|
|
1884
1886
|
- **Install RAG deps first**: `pip install "agent-cli[rag]"` (or, from the repo, `uv sync --extra rag`)
|
|
1887
|
+
- **Note on ignored files**: `.gitignore` rules in your docs folder are respected during indexing; if the docs folder is inside a git repo, parent `.gitignore` files up to the repo root are also applied. Use `!pattern` entries to re-include paths when needed
|
|
1885
1888
|
- **Start Server (Local LLM)**: `agent-cli rag-proxy --docs-folder ~/Documents/Notes --openai-base-url http://localhost:11434/v1 --port 8000`
|
|
1886
1889
|
- **Start Server (OpenAI)**: `agent-cli rag-proxy --docs-folder ~/Documents/Notes --openai-api-key sk-...`
|
|
1887
1890
|
- **Use with Agent-CLI**: `agent-cli chat --openai-base-url http://localhost:8000/v1 --llm-provider openai`
|
|
@@ -1919,10 +1922,12 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
1919
1922
|
How it works:
|
|
1920
1923
|
|
|
1921
1924
|
1 Documents in --docs-folder are chunked, embedded, and stored in ChromaDB
|
|
1922
|
-
2
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1925
|
+
2 Paths matched by .gitignore files in the docs folder and, when inside a git repo, its
|
|
1926
|
+
parents up to the repo root are skipped
|
|
1927
|
+
3 A file watcher auto-reindexes when files change
|
|
1928
|
+
4 Chat requests trigger a semantic search for relevant chunks
|
|
1929
|
+
5 Retrieved context is injected into the prompt before forwarding to the LLM
|
|
1930
|
+
6 Responses include a rag_sources field listing which documents were used
|
|
1926
1931
|
|
|
1927
1932
|
Supported file formats:
|
|
1928
1933
|
|
|
@@ -1948,7 +1953,11 @@ uv tool install "agent-cli[vad]" -p 3.13
|
|
|
1948
1953
|
╭─ RAG Configuration ────────────────────────────────────────────────────────────────────╮
|
|
1949
1954
|
│ --docs-folder PATH Folder to watch for documents. Files are │
|
|
1950
1955
|
│ auto-indexed on startup and when changed. │
|
|
1951
|
-
│
|
|
1956
|
+
│ Paths matching .gitignore files in this │
|
|
1957
|
+
│ folder and, when inside a git repo, its │
|
|
1958
|
+
│ parent directories up to the repo root are │
|
|
1959
|
+
│ skipped. Must not overlap with │
|
|
1960
|
+
│ --chroma-path. │
|
|
1952
1961
|
│ [default: ./rag_docs] │
|
|
1953
1962
|
│ --chroma-path PATH ChromaDB storage directory for vector │
|
|
1954
1963
|
│ embeddings. Must be separate from │
|
|
@@ -23,7 +23,7 @@ from agent_cli.core.utils import (
|
|
|
23
23
|
def rag_proxy(
|
|
24
24
|
docs_folder: Path = typer.Option( # noqa: B008
|
|
25
25
|
"./rag_docs",
|
|
26
|
-
help="Folder to watch for documents. Files are auto-indexed on startup and when changed. Must not overlap with `--chroma-path`.",
|
|
26
|
+
help="Folder to watch for documents. Files are auto-indexed on startup and when changed. Paths matching `.gitignore` files in this folder and, when inside a git repo, its parent directories up to the repo root are skipped. Must not overlap with `--chroma-path`.",
|
|
27
27
|
rich_help_panel="RAG Configuration",
|
|
28
28
|
),
|
|
29
29
|
chroma_path: Path = typer.Option( # noqa: B008
|
|
@@ -71,10 +71,11 @@ def rag_proxy(
|
|
|
71
71
|
**How it works:**
|
|
72
72
|
|
|
73
73
|
1. Documents in `--docs-folder` are chunked, embedded, and stored in ChromaDB
|
|
74
|
-
2.
|
|
75
|
-
3.
|
|
76
|
-
4.
|
|
77
|
-
5.
|
|
74
|
+
2. Paths matched by `.gitignore` files in the docs folder and, when inside a git repo, its parents up to the repo root are skipped
|
|
75
|
+
3. A file watcher auto-reindexes when files change
|
|
76
|
+
4. Chat requests trigger a semantic search for relevant chunks
|
|
77
|
+
5. Retrieved context is injected into the prompt before forwarding to the LLM
|
|
78
|
+
6. Responses include a `rag_sources` field listing which documents were used
|
|
78
79
|
|
|
79
80
|
**Supported file formats:**
|
|
80
81
|
|
|
@@ -262,6 +262,9 @@ class History(BaseModel):
|
|
|
262
262
|
class Dev(BaseModel):
|
|
263
263
|
"""Configuration for parallel development environments (git worktrees)."""
|
|
264
264
|
|
|
265
|
+
editor: bool = False
|
|
266
|
+
agent: bool = False
|
|
267
|
+
direnv: bool | None = None
|
|
265
268
|
default_agent: str | None = None
|
|
266
269
|
default_editor: str | None = None
|
|
267
270
|
branch_name_mode: Literal["random", "auto", "ai"] = "random"
|
|
@@ -270,6 +273,7 @@ class Dev(BaseModel):
|
|
|
270
273
|
agent_args: dict[str, list[str]] | None = (
|
|
271
274
|
None # Per-agent args, e.g. {"claude": ["--dangerously-skip-permissions"]}
|
|
272
275
|
)
|
|
276
|
+
agent_env: dict[str, dict[str, str]] | None = None
|
|
273
277
|
setup: bool = True # Run project setup (npm install, etc.)
|
|
274
278
|
copy_env: bool = True # Copy .env files from main repo
|
|
275
279
|
fetch: bool = True # Git fetch before creating worktree
|