Skip to content

Feature/agent friendly - #1557

Open
teknopaul wants to merge 21 commits into
geany:masterfrom
teknopaul:feature/agent-friendly
Open

Feature/agent friendly#1557
teknopaul wants to merge 21 commits into
geany:masterfrom
teknopaul:feature/agent-friendly

Conversation

@teknopaul

Copy link
Copy Markdown

Adding a tabbed command line interface, that supports copy & paste and naming tabs.

User configured tools can be defined in a conf file (for each file extension type) to run code in the CLI terminal.

Has dedicated side tab for the AI Agent, this is just another CLI that opens your configured AI Agent in the project current directory, supports copy / paste and adding files to the Agents context window.

Screenshot from 2026-05-22 20-31-19

@teknopaul

Copy link
Copy Markdown
Author
Screenshot from 2026-05-22 20-19-30

@teknopaul

Copy link
Copy Markdown
Author
image

added menus for user configurable AI tooling.

So now in the UI you can run anything in the AI agent window

@teknopaul

Copy link
Copy Markdown
Author
image

Shortcuts for naming & training your AI agent

@teknopaul

Copy link
Copy Markdown
Author
image

Pluggable tooling , per file type, via popups in the treebrowser plugin, if you use that, or the Tools menu for open files if not.

@teknopaul

Copy link
Copy Markdown
Author
image

Break out of AI Agent to an Internet search, because your AIs are not infalliable, and Stack Overflow is still a thing.

@teknopaul

Copy link
Copy Markdown
Author
image

Added the ability to run tools in the root directory of a project.

This kinda accidentally resolved the VCS integration issue. By checking for ./git you can add your git workflow as menu items in the GUI, here is a simple "push everything" approach.

# Auto VCS #

[dir:.git]
name_0=Git add all
tool_0=cd %d; git add . ; git commit -m "$(zenity --entry --width=800 --title=Git --text=Message:)"
name_1=Git push
tool_1=cd %d; git push

Naturally, if you have strict named / numbered Pull Requests you can easily script that up too.
This is done once for all Geany instances, or can be overridden per project, if one project has specific VCS requirements.
For example, you can create a ./config/filetypetools.conf, push that to Git, and everyone gets the same Git workflow menu items when they open the project.

All vcs tools have CLIs, this one little trick means you can integrate all possible version control systems with whatever commands suits your workflow.

@phinds1

phinds1 commented May 25, 2026

Copy link
Copy Markdown
image

Locate plugin...

double tap Shift to open
type name of file + Enter
If locate finds just one file you open it with Enter
If it finds more than one file, they open like normal search results, as clickable links in the Messages window

@teknopaul

Copy link
Copy Markdown
Author
Screenshot from 2026-06-23 17-14-47

added multiple agent support, Claude is down today so this patch was added by opencode.


Geany has a "Find in Files..." feature but no "Find File" (by name) feature.

Windows has no such thing, but Linux has a fast indexed find file features in the OS called "locate" which we can use for the search engine.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Locate is not a standard tool.

Image

- If there are **no results** the dialog should stay open, so the user can refine the search.
- If there is **exactly one result** found, it should presented to the user in the dialog window (without another popup), to open that file, the user just clicks enter.
- If there are **multiple results** found, it should behave like "Find in Files..." by adding clickable links in the Messages tab.
- Menu Item "updatedb" whis will run `sudo updatedb` in the background, sudo users privs are needed via popup of some sort.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

application code initializing a sudo command is risky. I would advise strongly against it, or fork this off to polkit.

Comment thread locate/src/locate.c
const gchar *root)
{
GPtrArray *argv = g_ptr_array_new();
g_ptr_array_add(argv, g_strdup("locate"));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

There are 3 locates that I know of. locate, mlocate, and plocate. Ubuntu seems to be defaulting to plocate now. I am not sure it will build update-alternatives for locate to resolve. This might have to be a search.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants