| Age | Commit message (Collapse) | Author |
|
|
|
Implements `ask watch [subcommand...]` which re-runs a read-only
subcommand every 2 seconds and redraws output when it changes,
similar to gnu-watch.
Safety features:
- Restricted to read-only subcommands (list, all, ready, info,
urgency, help, dep list)
- Recursive watch is blocked
- Captures stderr so error messages are visible in the watched display
Also adds readOnly field to commandEntry registry for maintainability.
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019e45ff-4976-750c-b2e6-121d0e5991ef
Co-authored-by: Amp <amp@ampcode.com>
|
|
The CLI now opens the config file only via hexai config (and --config).
README, usage, and configuration docs describe the subcommand. Version 0.38.4.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
Switches the in-code defaults so that hexai talks to Ollama Cloud
(https://ollama.com) with model kimi-k2.6 when no provider is configured,
instead of OpenAI. The example config, README, and configuration guide
all reflect the new recommended setup; previous OpenAI / local-Ollama
options are still documented as alternatives.
Tests that depended on the implicit "openai" default now pin the
provider explicitly so they continue to exercise the OpenAI / gpt-5
code paths they were designed to cover.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
|
- README: expand hexai-tmux-action bullet with popup mode, all built-in
hotkeys, configurable menu, and overridable prompts
- configuration.md: update TUI section (split→popup, new popup flags,
configurable menu example, prompt key-prefix table)
- usage.md: update Hexai Action section with full hotkey table and
configurable menu mention
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Clarify that mage install and go install do not write fish/completions,
document removing stale ask.fish from older installs, and cross-link
README, buildandinstall, and usage.
Made-with: Cursor
|
|
mage install no longer writes ~/.config/fish/completions/ask.fish; use
ask fish | source or a conf.d snippet per docs/fish-completion.md.
Made-with: Cursor
|
|
- Move cmd/do to cmd/ask; mage builds and installs ask; Fish completions to ask.fish
- Update askcli help text, errors, executor default label, and Fish script (__ask_*)
- Task alias cache subdirectory under XDG cache: hexai/ask/
- Rename integration test files and helpers; refresh README and docs
- Rename plan-do-uuid-wrapper.md to plan-ask-uuid-wrapper.md
Made-with: Cursor
|
|
|
|
|
|
|
|
Add complete-aliases subcommand that emits tab-separated alias lines without
UUID duplicates. Wire embedded Fish script (__do_task_selectors) to call
complete-aliases; keep complete-uuids unchanged for scripts and tests.
Made-with: Cursor
|
|
Rename plan-ask-uuid-wrapper.md to plan-do-uuid-wrapper.md and note the
former binary name. Clarify install line, README entrypoint, and usage
task-management section so scripts and examples consistently use do.
Made-with: Cursor
|
|
- Move cmd/ask to cmd/do; mage BuildDo builds binary named do
- Update askcli help text, errors, Fish completion (complete -c do, __do_*)
- Task alias cache path: XDG cache hexai/do/task-aliases-v2.json
- Refresh README and docs; go install path cmd/do@latest
- Remove accidentally tracked cmd/ask build artifact; ignore cmd/do/do and cmd/do/ask
Made-with: Cursor
|
|
Claude Code CLI now supports Ctrl+G to open the prompt in EDITOR
(like OpenAI Codex CLI), making the built-in hexai-tmux-edit agent
profile redundant.
- Remove internal/tmuxedit/claude_agent.go and its tests
- Update builtinAgents() to exclude claude; built-ins are now: cursor, amp, aider
- Update all documentation (README, docs/tmux.md, docs/usage.md, docs/configuration.md)
- Update config.toml.example to reflect new agent list
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
6c1f2f60-d55c-4a0c-ba5d-e897c738ecb4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d1407-6145-7534-b780-29a2559d06c5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d1407-6145-7534-b780-29a2559d06c5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d1407-6145-7534-b780-29a2559d06c5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d1407-6145-7534-b780-29a2559d06c5
Co-authored-by: Amp <amp@ampcode.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d1407-6145-7534-b780-29a2559d06c5
Co-authored-by: Amp <amp@ampcode.com>
|
|
|
|
|
|
|
|
|
|
|
|
Add deprecation notices across hexai-mcp-server codebase and documentation.
The MCP server is now considered experimental and not actively maintained,
as prompts are managed through slash commands and meta-commands instead.
Changes:
- Add runtime deprecation warning to stderr on binary startup
- Mark feature as deprecated in README.md
- Add deprecation notices to all 8 MCP documentation files
- Add deprecation log message to run.go
- Update Magefile.go build comment
The code remains fully functional but warns users of its experimental status.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019c50bc-2906-77db-a31e-0d553338d99b
Co-authored-by: Amp <amp@ampcode.com>
|
|
This change moves built-in meta-prompts (save_prompt, update_prompt) from
external JSONL files into compiled Go code, making them always available
and version-controlled with the binary.
Changes:
- Add default_prompts.go with built-in meta-prompt definitions
- Update store to load built-ins from code, not files
- Add protection: built-ins cannot be updated/deleted
- Handle name conflicts: built-ins take precedence with warnings
- Update docs to reflect new architecture (no default.jsonl needed)
- Add comprehensive tests for built-in protection
- Add hexai-mcp-server binary to .gitignore
Benefits:
- Built-ins always in sync with binary version
- No setup required (no default.jsonl to manage)
- Clear separation between built-in and user prompts
- Protection prevents accidental modification of meta-prompts
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Update all documentation to reflect new directory structure:
- Cache: ~/.local/hexai/cache/
- State: ~/.local/hexai/state/
- Data: ~/.local/hexai/data/
Updated files:
- README.md
- docs/mcp-setup.md
- docs/mcp-prompts.md
- docs/mcp-managing-prompts.md
- docs/mcp-features-summary.md
- docs/mcp-automatic-backups.md
- docs/mcp-server-complete.md
Amp-Thread-ID: https://ampcode.com/threads/T-019c4e03-73db-70a2-ae27-3e1cc31d59c3
Co-authored-by: Amp <amp@ampcode.com>
|
|
The MCP stdio protocol uses newline-delimited JSON (JSONL), not LSP-style
Content-Length headers. This was discovered during integration testing with
Claude Code CLI which could not connect to the server.
Also updates docs/mcp-setup.md with correct Claude Code CLI configuration
(use `claude mcp add` instead of editing JSON files) and adds integration
test runbook for testing against real Claude Code CLI instances.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Implements a full Model Context Protocol (MCP) server for managing and serving prompts
to LLM applications. The server provides CRUD operations for prompts with automatic
backups and template rendering support.
Key additions:
- cmd/hexai-mcp-server: Main MCP server binary entrypoint
- internal/hexaimcp: Server orchestrator with configuration and setup
- internal/mcp: Core MCP protocol implementation (JSON-RPC 2.0)
- internal/promptstore: Prompt storage with JSONL backend and automatic backups
- Comprehensive test suites achieving 80%+ coverage for all MCP packages
- Magefile targets for building and installing the MCP server
- Complete documentation for setup, API, prompts, and backups
Test coverage:
- internal/hexaimcp: 84.3%
- internal/mcp: 80.3%
- internal/promptstore: 81.2%
- Overall project: 81.5%
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
hexai-tmux-edit was opening in the wrong directory because the tmux
popup wasn't being told which directory to use. This fix:
- Updates bind-key example to cd into pane's current path
- Passes working directory to popup via -d flag using os.Getwd()
- Updates all documentation with corrected bind-key examples
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
|
|
Co-authored-by: Cursor <cursoragent@cursor.com>
|
|
Claude Code's prompt input field does not support vim commands for
clearing. The previous sequence 'Escape gg C-v G d i' resulted in
literal text 'gGdijo' appearing in the prompt instead of clearing it.
Changed to 'C-a C-k' (Emacs/readline style):
- C-a: Move cursor to start of line
- C-k: Kill (delete) from cursor to end of line
Also added 150ms delay after Escape key in sendClearSequence to ensure
mode transitions complete before subsequent keys are sent (though Claude
uses readline, this helps other potential vim-based agents).
Changes:
- internal/tmuxedit/claude_agent.go: clearKeys "C-a C-k" instead of vim
- internal/tmuxedit/claude_agent_test.go: Update test expectations
- internal/tmuxedit/agentutil.go: Add time import and Escape delay
- docs/usage.md: Update claude clear method documentation
- docs/tmux.md: Clarify claude uses readline not vim
- config.toml.example: Update claude description
Integration tested:
- Extracted: "final verification test"
- Sent: "FINAL REPLACED TEXT NO VIM COMMANDS"
- Result: Clean replacement with NO vim command artifacts
- All unit tests pass (67/67)
- Coverage: 80.9%
Co-authored-by: Cursor <cursoragent@cursor.com>
|