Skip to content

Add --json mode to binaries#49

Merged
logan-markewich merged 5 commits into
mainfrom
logan/add_json_mode
Feb 5, 2026
Merged

Add --json mode to binaries#49
logan-markewich merged 5 commits into
mainfrom
logan/add_json_mode

Conversation

@logan-markewich

@logan-markewich logan-markewich commented Feb 4, 2026

Copy link
Copy Markdown
Contributor

Adds a --json mode to all binaries, to facilitate usage with the jq tool in bash. This is a pretty common tool for coding agents, so I can see this helping a lot

This PR is also way bigger than I expected. I should have added structured outputs instead of strings from the beginning 😢

Fixes #29
Fixes #28

@logan-markewich logan-markewich added the enhancement New feature or request label Feb 4, 2026
Comment thread src/ask/chat_agent.rs
// Call the appropriate tool
let response_content = call_tool(name, args, &files, model).await?;
let response_content =
call_tool(name, args, &files, model, &mut result).await?;

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like how I need to pass in this mutable list reference, but I don't see a better way

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think this is what makes the most sense

@AstraBert AstraBert left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

At this point, I think it could be great to add a semtools skills with examples of the things an LLM can do with semtools. I think it can be very simple (like this one I wrote), but would be helpful in giving the LLM an idea of how to use jq with JSON mode :))

Comment thread src/ask/chat_agent.rs
// Call the appropriate tool
let response_content = call_tool(name, args, &files, model).await?;
let response_content =
call_tool(name, args, &files, model, &mut result).await?;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think this is what makes the most sense

@logan-markewich

Copy link
Copy Markdown
Contributor Author

@AstraBert an example skill would be great. However, I had pretty bad luck the last time I tried to add a skill for semtools. It felt like I couldn't reliably get it to activate the skill and it would default to grepping for things etc. Part of me wonders if this type of knowledge just always needs to be in the prompt? Lemme know if you try it out though

@logan-markewich logan-markewich merged commit bfb8ee7 into main Feb 5, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: workspace status --json output mode Feature: search CLI --output=json + per-file aggregation

2 participants