Skip to content

Crush integrated AI assistant for documentation/configuration/general help #1293

@johnr14

Description

@johnr14

Description

Hi,
Getting started with crush. But I see a spot that could need immediate attention for helping getting new users started.

That would be a integrated crush assistant.
What I mean is to use the the LLM interact with crush to help the user for configuration/documentation/git issues.

Coming from aider, I got used to /cmd so perhaps starting the conversation with crush or Crush could trigger a specific mode that is not interacting with the current code/project but with crush itself ? Why not have a way to ask for help on using crush ? I don't like going to a menu, but I would personally remap ./ for files and keep / for running commands.

Watching some crush video :
https://www.youtube.com/watch?v=3crlgrd86r0
https://www.youtube.com/watch?v=MXOP4WELkCc

There are some nice feedback.
One of them is to use natural language to ask questions about crush or the mcp servers connected.

So I suppose we could have a few markdown files and some sort of quick RAG to pull context to the llm and ask a question. It could even pull up-to date info from git/crush website.

Now this crush interface should :

  • Provide answers on topics found in crush documentation
  • Search github issues for related issues or feature requests similar to what is asked
    • Help prepare a bug issue or feature request (writing template, asking questions to make it more comprehensive and specific)
  • help modify crush configurations files
    • ex.: crush add edit to allowed tools
    • ex.: crush what mcp would help lower my token usage or enhance my productivity? How can I install them ?
    • ex: crush add local provider qwen a3b at localhost:8111
      • will try to generate config, if info missing ask user or propose choices (llamacpp, ollama?) with selection choices and editable boxes as TUI.... Then try testing the configuration : Got error 503, listing models, model name provided by user is wrong, provide list of available models at that address....
  • help debug session
    • ex: crush I tried to add _function_ to my code but it changed a bunch of things, help me revert the changes to when _other_function_ was added
      • will use git commands to search commits and provide a list of commits with diffs (aka gitui) and recommend the best commit, then offer the command to revert and ask user what commit he wants to revert to.
  • general help : crush compress local folder to bz2 and exclude .git and .gitignore files and save it to /mnt/usb/project_bk.tar.bz2

Run specialized templates/workflow/plugin for crush (ambitious wish)

  • crush create crush plugin for creating a project architect that will go back and forth with the user asking him questions about the desired project, proposing different implementation types, generating a comprehensive plan for implementation, chunking the plan in actionable tasks, tracking tasks and progress, support adding TODO to future version without immediate implementation, support git issues for bugs and merge for code fix. Use TUI elements to interact with the user in a interactive way ...
  • EDIT: but I would go further and hope something like this is possible : crush this large codebase has bugs, make a plan to debug it with available models, optimize using small models for simple tool call, use model XXX for code review, model YYY to reorder the issues in the code review and generate a plan to tackle them by priority. Use model XXX to review the plan and ask it for enhancement. Working... crush do XX first and execute the plan

EDIT: for it to function well, crush documentation should be kept to date and have additional sections :

  • FAQ
    -> crush should ask user, if a question is not answered correctly, if he wants to post-it online :
    have a new git repository (crush-qa) for managing questions as issues to not flood crush development bugs with questions. This repository could hold all documentation in .md related to crush, management of it should be semi-agentic and as soon as a issue is marked as closed, generate Q-A -> classify it, check where it should go, append it to the .md.
    • use a index.md with each config section containing a short summary and links to subsection to help manage context
  • Config edits rules and documentation as .md describing every option available for configuration with a .json.
    • Automate generating those from source code with agents.
  • Plugin should have separate docs
  • MCP : keep a list of mcp servers that works well with crush, with a description of default commands and general description/user review, installation commands for crush to make it run locally and available to the user.
  • Roadmap, release info, current bugs should also have their .md so user can check like : crush what's new since version X? or crush I want to do a _feature_ can it be done ? -> no, that feature is planned for version XXX.

EDIT:
Crush should have access to some sort of MCP that can interact with the user using TUI, like text box check box string etc. I use AI to preprocess my prompts and enhance it, asking it for suggestions, enhancements or clarification questions. I would like to be provided with a list of checkbox to accept such suggestions or even edit it manually or by an other AI call (only a part of the suggestions) then have an other call to finalize the prompt and asking for RUN, MANUAL_EDIT, AI_EDIT, SAVE, CANCEL. Think of it like some sort of scratch pad (emacs?) with AI edit capabilities, that should only work on the prompts and have access to the project but no modification access. That way you could ask crush in scratch mode to generate a list of filenames/issues/function_names/etc and append that to the scratch message.

Thanks,
I have other suggestions, but this is the most impactful.
Keep up the good work.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions