summaryrefslogtreecommitdiff
path: root/cmd
AgeCommit message (Collapse)Author
2026-02-08add hexai-tmux-edit: tmux popup editor for AI agent promptsPaul Buetow
New tool that opens $EDITOR in a tmux popup for composing longer prompts when working with AI CLI agents (Claude Code, Cursor, Amp, Aider, etc.). Captures existing prompt text from the target pane, pre-fills the editor, and sends edited text back via tmux send-keys. Config-driven agent detection via regex patterns in [tmux_edit] config section. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06Remove GitHub Copilot provider supportpaul@buetow.org
Remove all GitHub Copilot integration from the codebase to streamline the supported provider set to OpenAI, OpenRouter, Anthropic, and Ollama. Changes: - Delete core Copilot implementation (copilot.go) and all related tests - Remove Copilot configuration fields from App struct and Config - Remove Copilot from provider factory and API key handling - Update all test files to replace Copilot references with other providers - Remove Copilot documentation from README, configuration guide, and examples - Remove Copilot section from config.toml.example All tests pass successfully after removal. Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-30fix: restore corrupted cmd/hexai/main.go from commit 6103208feature/anthropic-api-providerPaul Buetow
Amp-Thread-ID: https://ampcode.com/threads/T-019c0e27-1598-778e-ad3b-fa43ce6e7073 Co-authored-by: Amp <amp@ampcode.com>
2026-01-29feat: add native Anthropic API provider supportPaul Buetow
- Implement new anthropicClient with full Client interface - Add Streamer interface for token-by-token streaming via SSE - Add Anthropic Messages API v1 integration with proper headers - Support claude-3-5-sonnet-20241022 as default model - Add configuration via [anthropic] TOML section - Add environment variable overrides (HEXAI_ANTHROPIC_*) - Support both HEXAI_ANTHROPIC_API_KEY and ANTHROPIC_API_KEY fallback - Integrate Anthropic key handling in LSP, CLI, and llmutils - Update provider factory to support 'anthropic' provider name - Add 11 comprehensive unit tests for Anthropic client - Update config.toml.example with [anthropic] section - Update NewFromConfig() signature to accept anthropicAPIKey parameter - All 51 internal LLM tests pass (11 new Anthropic tests + 40 existing) Anthropic models can be accessed via: [anthropic] model = "claude-3-5-sonnet-20241022" base_url = "https://api.anthropic.com/v1" temperature = 0.2 or environment: export HEXAI_PROVIDER="anthropic" export HEXAI_ANTHROPIC_API_KEY="your-key" Amp-Thread-ID: https://ampcode.com/threads/T-019c0af1-f215-72cf-9940-b014b1a9576b Co-authored-by: Amp <amp@ampcode.com>
2025-11-02some linter fixesPaul Buetow
2025-09-28Document config defaults in CLI helpPaul Buetow
2025-09-28Propagate --config overrides through CLI tools and LSP reloadsPaul Buetow
2025-09-28Add --config flag support across CLI, LSP, and tmux toolsPaul Buetow
2025-09-28Improve multi-provider completion streaming and CLI selector flagsPaul Buetow
2025-09-08docs: move tmux documentation to its own filePaul Buetow
2025-09-07feat: rename hexai-action -> hexai-tmux-action; remove --tmux/--no-tmux; ↵Paul Buetow
tmux-only flow; update docs and Magefile
2025-09-07refactor: move hexai-action to cmd/hexai-action; extract orchestration into ↵Paul Buetow
internal/hexaiaction; move tests; update Magefile and docs
2025-09-07tiding upPaul Buetow
2025-09-06feat(hexai-action): add --infile/--outfile flags; docs and tests\n\n- Add ↵Paul Buetow
flags to read from file and write to file\n- Refactor IO open into helper for testability\n- Add CLI integration-style test for IO\n- Update README and docs/usage.md with examples\n- Update docs/testing.md with instructions
2025-09-06more testsPaul Buetow
2025-08-31module: set module path to codeberg.org/snonux/hexai; update imports; docs: ↵v0.3.4Paul Buetow
add go install instructions
2025-08-17refactor as per manual code reviewsPaul Buetow
2025-08-17feat: Support XDG config homePaul Buetow
This change implements support for the XDG Base Directory Specification for the configuration file. The configuration file is now read from `$XDG_CONFIG_HOME/hexai/config.json` if the `XDG_CONFIG_HOME` environment variable is set. If it is not set, it falls back to the previous location, `$HOME/.config/hexai/config.json`. This change also includes: - A fix for a bug in the test suite where a test was failing due to an environment variable being set. - Updates to the documentation to reflect the new configuration file location. - A version bump to 0.1.0.
2025-08-17cli+lsp: refactor main packages into internal runners; add testsPaul Buetow
- Move CLI logic to internal/hexaicli with Run/RunWithClient - Move LSP logic to internal/hexailsp with Run/RunWithFactory - Extract helpers; keep behavior identical for both binaries - Add unit tests for hexaicli (input parsing, messages, streaming) and hexailsp (factory wiring, client creation, logging settings) - Add top-of-file summaries and 'Not yet reviewed by a human' comments to all Go files - Update README with internal package docs
2025-08-17cli: stream responses in hexai when supported (OpenAI, Ollama)Paul Buetow
- Add llm.Streamer optional interface - Implement ChatStream for OpenAI (SSE) and Ollama (JSON stream) - CLI uses streaming; LSP unchanged (non-streaming) - README: document streaming behavior for CLI
2025-08-17docs(cli): document hexai CLI usage and behaviorsPaul Buetow
- Inputs from stdin/arg, concatenation rules - Stderr styling, immediate provider/model, final stats line - Default concise style; 'explain' keyword for verbose answers - Examples and exit codes
2025-08-17cli: add leading newline before stats on stderr for hexai outputPaul Buetow
2025-08-17cli: add hexai command-line tool and split LSP to hexai-lspPaul Buetow
- New cmd/hexai CLI: reads stdin/arg, prints LLM output to stdout - Prints provider/model immediately to stderr; summary at end - Refactor config loader to internal/appconfig - Update Taskfile to build/install/run both binaries - Update README with new CLI and LSP names
2025-08-17rename CLI binary to hexai-lspPaul Buetow
- Default log path: /tmp/hexai-lsp.log - Taskfile: build/copy/run hexai-lsp binary
2025-08-17llm: add GitHub Copilot providerPaul Buetow
- Implement copilot client reading COPILOT_API_KEY - Wire copilot_base_url and copilot_model config - Update README and config example; defaults to gpt-4.1 - Keep OpenAI default at gpt-4.1 for consistency
2025-08-17lsp/config: make completion trigger characters configurablePaul Buetow
- Add trigger_characters to JSON config and ServerOptions - Store on server and advertise in initialize - Update README and example config - Preserve previous defaults when unset
2025-08-16lsp: refactor NewServer to use options structPaul Buetow
- Introduce ServerOptions to reduce constructor parameter count - Update main.go call site; preserve defaults and behavior - Build and run tests
2025-08-16lsp: add 'Resolve diagnostics' code action scoped to selectionPaul Buetow
- Parse diagnostics from CodeAction context; filter to overlap with selection - Build LLM prompt from selection-only diagnostics; replace only selected range - Keep existing 'Rewrite selection' action; return both when applicable - Add Diagnostic and CodeActionContext types; make CodeActionParams.Context raw JSON - Add helpers for range overlap; unit tests for filtering/overlap - Update README to document resolve-diagnostics action
2025-08-16refactor(config): drop env-based config (except OPENAI_API_KEY)Paul Buetow
- Switch to config-file-only; only OPENAI_API_KEY read from env.\n- llm: replace env autodetect with Config + NewFromConfig; add newOpenAI/newOllama.\n- lsp: NewServer now accepts injected llm.Client.\n- cli: remove env overrides; extend appConfig with provider-specific fields; build client from config + OPENAI_API_KEY.\n- docs: update README (config-only, defaults to OpenAI, minimal example); simplify flags table.\n- add config.json.example.\n- prompts: enforce ;text; (no spaces) and add ;;text; to remove entire line; tests added.