From 2907053d0437979a13d2a86f99b2dcc72012cd5e Mon Sep 17 00:00:00 2001 From: CakeRepository Date: Wed, 30 Apr 2025 19:57:36 -0500 Subject: [PATCH 1/6] bing bop boom --- .../recursive-control-banner-dark-1280x640.jpeg | Bin 0 -> 76573 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/recursive-control-banner-dark-1280x640.jpeg diff --git a/content/recursive-control-banner-dark-1280x640.jpeg b/content/recursive-control-banner-dark-1280x640.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..540b256f9ac06ad823ff46d9cabdce3ac1c69013 GIT binary patch literal 76573 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%0AC==IbIFNGj>NO&!s3{Uz+ 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 @@E5zK7DP^GpJ4=0b8Q1 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
  • OZXWCb7@g1j#DH2OXC|Q1oi#mGrkL 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%0AaE z1q&`bfy&_FbnoVO2ps`93tuSSxX6%_V8W7v2n zYay!#24yS<7`92CEIS|XG{8I>qd6{N2C86XVo+cOUap9sA9;}iEpTh@_Axlpl$jcq zE<*?gwUEqO=XQ!pB6^If-uV7_FK)o0Gu2~AFaA^^I;X|IQ z^APT&``nC1{jPXmrW#Gc4hb{bEX%Zs`!*hYwR6Wb4Tb3$L8qwo#= zoCLZ#u6a3k!aVh8A1f<$tkOBmb43jPLWZ1bw{0n~eL(YA{jr3qI5-{EQTsy=*E;EN z|8?BgHuBHf+2*?y5O&UPem)$pFyETB*W5dMaNMvJ@H#1V3XXPhP9)B@xMEl6@W+~s z4p)F#RVIL;glS%~C`(v?Sh}HnBq@fkE&w3F8>=9L({`lV6k!POLU+K()!_@Sh#PQV z5>5!UAYGHYE< zvBZ>tKLg-C2P)bVw7SzsB7)gQJi9;ch?EZKY(Y&wbt5}@E>XIN*S@A;H@N`tae#yy zz2GB*$b^L~H5el8QYQ`81id1QI2o`m0CAv7dx~bGP1!DW0B$uaG((yQR+jMm5!{XZ zsseWc*C%s|&bfr(n`pE}t7Uzj$SE(&%Ru9mc?36fnzAuSHNsZC^pcdKh43q?XzC5__T$>yNR_nTK7M4vi|DRc24$G3!nZij7qih2V)5brm`azY@V zH)$k~>)DQ$L9{Qu3@0pW5Mq=-8Us0k5KC~^IS3j8Ge~DxS`7Z;@Gk&^nw1X#M*U7l zJ)U34$>WOREMNNDN^OF&@#c{GGET?7{N#}dBSafg+?{ap-FGf#C&K!rwg%W=6g~=f ze{gI44S{YG@(_D=0n_JNlKB=PL7A28#b^M0B8nU9qPg2Z+X+OW60|vn&{D{GL=Ah> zb|j!W`-bRu#XNO-?rDwaEZVnWnv#6qi|r2%h^vWkL?4g-M{~F~RB1>oZ4^K7KA%ln ztz;lx(`Cta4e*HTxD+~g+ual~=qwRF;O-82BE&fg;nQhY1v7;kvHjMeCbQn0Ba@*t zq^ada?ncN|JVsPGz@5^C*W*d{1BW_WO;xuGI$JLE@L;(rG>bC8;(mw476tt{Q=dR@ zqWFw4=EK{QO$!$RAra1FmFx({vYPZkom9Z~NEaOnwx1|14r9(B2b?4Frz!{%<}k@8d~G_IG;C8y0m9;F>e;(wOS0D}d4{QI8Bl}_M{Lnf@B6IYsuR=6oh zUHFxGW+7`IgrQX~%D~pW3k+SEHGbfYg82tCVbL>wP*WeqgqrB8)5eeq%agIQhzb%u z1y3!J_vjg-tUWCeDKf>`bBHeh)P(CGTD;4&MAF=a%!(D-{st0%;H)c7Tc>&oByg12 z4g$9T(7cAlX`n_b+wpLX6G<$kfW`&lw9+N8d_bHqj<}?1x@Wae`_pH%3VFXl=H!{(JwmMm|8B{fj z{H9s3%afo{;;S*D_dIff0`O8CtZW1S2Alo&8zUT1ee5+vJbD+UV(*}+V@L4&Mq)2c?I=30n)sYNn04VUkfhP`^ z$Y`L6+?AcD4Nsp2gLpL!+$2QK8Ma6sj7*qTRftER%n-lR4{H*DcVaO7AAtgnXUuSW z2{&4vq`C*OaXg{}I#XwCmNKhBp6A6_8pk;&&0QkrCak9bDR=1eDxu=Lk#o-vGPb|| zP|>8;9QxAcy!HETY@?*i=v4*tAP~O4e>*f9ph+})!?tra_wpzl+X$KQlsw7Hnxy#Y iB>jqcwrRXk<75Lurn%@DP5(}ayaCPpA{qU^-~E4C`tErE literal 0 HcmV?d00001 From a31f3be85f08af6c8e5ec7e1f1b149b7a068e1f1 Mon Sep 17 00:00:00 2001 From: Justin Trantham Date: Wed, 30 Apr 2025 20:08:06 -0500 Subject: [PATCH 2/6] Update README.md --- README.md | 100 +++++++++++++++++++++++++++++++----------------------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/README.md b/README.md index aadd53e..1f18d79 100644 --- a/README.md +++ b/README.md @@ -1,58 +1,74 @@ -# FlowVision + + Shows the logo of recursive control + -**Vision:** Making computing so easy, anyone can do it. +

    ๐Ÿ“Ž AI Control for Windows Computers ๐Ÿ“Ž

    -FlowVision aims to revolutionize how users interact with their computers by leveraging the power of Large Language Models (LLMs) and a suite of integrated tools. It provides a conversational AI interface that can understand natural language requests and translate them into actions on the user's machine, bridging the gap between human intent and computer execution. +Recursive Control is an innovative project designed to enable artificial intelligence (AI) to interact seamlessly with your computer, automating tasks, performing complex workflows, and enhancing productivity. -## Core Features +## Project Goal -* **Conversational AI Interface:** Interact with your computer using natural language through a chat window ([`Form1`](../../t:/Human-Use/FlowVision/Form1.cs)). The AI assistant interprets your requests and utilizes available tools to fulfill them. -* **LLM Integration:** Powered by advanced LLMs like Azure OpenAI ([`Actioner`](../../t:/Human-Use/FlowVision/lib/Classes/ai/Actioner.cs)) or potentially others like GitHub Models ([`Github_Actioner`](../../t:/Human-Use/FlowVision/lib/Classes/ai/Github_Actioner.cs)), enabling sophisticated understanding and task execution. -* **Extensible Tool System:** Integrates with Microsoft Semantic Kernel to manage and invoke various plugins (tools) that extend the AI's capabilities beyond simple chat. +Our mission is to create an AI-driven interface that can autonomously control your computer, intelligently perform tasks, open applications, execute commands, and streamline workflows, effectively turning natural language into actionable operations. -## Available Tools (Plugins) +## Features -FlowVision comes equipped with a powerful set of tools (plugins) that the AI can use to interact with your system. These tools are the key to making complex tasks simple. You can enable or disable these tools via the Tools configuration menu (`File -> Tools`). +- **AI-Powered Interaction**: Utilize AI models (such as GPT-based models) to interpret user input and intelligently execute actions. +- **Automated Workflow Execution**: Automate repetitive or complex sequences of computer actions. +- **Natural Language Commands**: Simply describe tasks in plain language, and let the AI handle execution. -* **CMD Plugin ([`CMDPlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/CMDPlugin.cs)):** Allows the AI to execute commands directly in the Windows Command Prompt. Useful for running scripts, managing files, or performing system tasks. -* **PowerShell Plugin ([`PowershellPlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/PowershellPlugin.cs)):** Enables the execution of PowerShell scripts, offering more advanced system administration and automation capabilities compared to CMD. -* **Screen Capture & OmniParser Plugin ([`ScreenCaptureOmniParserPlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/ScreenCaptureOmniParserPlugin.cs)):** This is a cornerstone of FlowVision's "vision" capabilities. - * It captures screenshots of the entire screen or specific application windows. - * It sends the captured image to an **OmniParser** service ([`OmniParserClient`](../../t:/Human-Use/FlowVision/lib/Classes/OmniParserClient.cs)). OmniParser analyzes the image, identifies UI elements (buttons, text fields, etc.), and returns structured data about the content and layout. - * This allows the AI to "see" and understand the visual interface of applications, enabling interaction with GUI elements even without direct API access. Configure the OmniParser URL via the Vision menu (`Vision -> OmniParser`). -* **Keyboard Plugin ([`KeyboardPlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/KeyboardPlugin.cs)):** Simulates keyboard input, allowing the AI to type text, press keys, and use keyboard shortcuts in applications. -* **Mouse Plugin ([`MousePlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/MousePlugin.cs)):** Simulates mouse movements and clicks (left, right, double-click) at specific screen coordinates or relative positions. Essential for interacting with graphical interfaces based on visual understanding from OmniParser. -* **Window Selection Plugin ([`WindowSelectionPlugin`](../../t:/Human-Use/FlowVision/lib/Plugins/WindowSelectionPlugin.cs)):** Manages application windows. It can list open windows, find specific windows by title, bring windows to the foreground, and provide window handles necessary for targeted screen captures or interactions. +## Getting Started -## Configuration +### Prerequisites -FlowVision requires some initial setup for optimal functionality: +- .NET 4.8 or later +- Windows Operating System +- Azure OpenAI API Key (More models will be supported in the future) -1. **LLM Configuration:** Set up your LLM provider (e.g., Azure OpenAI) credentials via the LLM menu (`LLM -> Setup -> Azure OpenAI` or `Github`). Enter the required endpoint, API key, and deployment/model name ([`ConfigForm`](../../t:/Human-Use/FlowVision/ConfigForm.cs)). -2. **Tool Configuration:** Access the tool settings via `File -> Tools` ([`ToolConfigForm`](../../t:/Human-Use/FlowVision/ToolConfigForm.cs)). Here you can: - * Enable/disable specific plugins. - * Configure AI behavior (e.g., `Temperature`, `Auto-Invoke Functions`). - * Toggle chat history retention. - * Customize the AI's system prompt. - * Enable/disable plugin usage logging. -3. **OmniParser Configuration:** Configure the URL for your OmniParser service instance via `Vision -> OmniParser` ([`OmniParserForm`](Human-Use/FlowVision/OmniParserForm.cs)). This is crucial for enabling the screen analysis features. +### Local Setup -## Getting Started +Download the latest release from the [Releases](https://github.com/flowdevs-io/Recursive-Control/releases) page and follow three easy steps. + +1. Run recursivecontrol.exe +2. Setup your LLM +![image](https://github.com/user-attachments/assets/5dc4f034-794c-46c8-bf96-a4c95db05886) +3. Start asking questions + +### Development + +1. Clone this repository: + ```bash + git clone https://github.com/flowdevs-io/Recursive-Control.git + ``` + +2. Navigate to the cloned directory: + ```bash + cd Recursive-Control + ``` + +3. Restore dependencies and build the project: + ```bash + dotnet restore + dotnet build + ``` + +### Usage + +Run the application: +```bash +dotnet run +``` + +Input your commands directly into the console, and watch as AI automates your tasks. + +## Contributing + +We welcome contributions! Please feel free to submit issues, suggestions, or pull requests. Your collaboration is essential for making Recursive Control powerful and versatile. -1. Clone the repository. -2. Open the solution (`FlowVision.sln`) in Visual Studio. -3. Build the solution. This will restore necessary NuGet packages ([`packages.config`](../../t:/Human-Use/FlowVision/packages.config)). -4. Run the application (`FlowVision.exe`). -5. Configure the LLM, Tools, and OmniParser settings through the application menus as described above. -6. Start chatting with the AI! +## License -## Dependencies +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. -FlowVision relies on several key libraries: +## Contact -* **Microsoft Semantic Kernel:** For AI orchestration, planning, and plugin management. -* **Azure OpenAI / OpenAI SDKs:** For communicating with the LLM services. -* **Newtonsoft.Json:** For JSON serialization/deserialization. -* **Windows Forms:** For the user interface. +For any questions, feedback, or collaboration inquiries, please connect with us through our GitHub repository or via LinkedIn. -By combining a powerful LLM with a versatile set of tools, especially the vision capabilities provided by OmniParser, FlowVision takes a significant step towards making computer interaction intuitive and accessible for everyone. \ No newline at end of file From 32b323e10124344c6fabbb52ac1f57e1cbcabb44 Mon Sep 17 00:00:00 2001 From: CakeRepository Date: Wed, 30 Apr 2025 20:13:05 -0500 Subject: [PATCH 3/6] readme updating --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/README.md b/README.md index 1f18d79..b508180 100644 --- a/README.md +++ b/README.md @@ -60,10 +60,52 @@ dotnet run Input your commands directly into the console, and watch as AI automates your tasks. +## Plugin System + +Recursive Control supports a modular plugin system, allowing you to extend its capabilities. Plugins can automate keyboard, mouse, window management, screen capture, command line, and more. You can find plugin implementations in the `FlowVision/lib/Plugins/` directory. To add your own plugin, implement the required interface and register it in the application. + +### Built-in Plugins +- **CMDPlugin**: Execute Windows command line instructions. +- **PowershellPlugin**: Run PowerShell scripts and commands. +- **KeyboardPlugin**: Automate keyboard input. +- **MousePlugin**: Automate mouse actions. +- **ScreenCapturePlugin**: Capture screenshots. +- **WindowSelectionPlugin**: Select and interact with application windows. + +## Folder Structure + +``` +FlowVision.sln # Solution file +FlowVision/ # Main application source + lib/ # Core libraries and plugins + Classes/ # Helper and service classes + Plugins/ # Built-in plugins + UI/ # UI theming + Models/ # Data models + Properties/ # .NET project properties +content/ # Images and assets +``` + +## Example Use Cases +- Automate daily report generation and emailing +- Control applications via natural language (e.g., "Open Excel and create a new spreadsheet") +- Capture and process screenshots for documentation +- Batch rename files or organize folders + +## Troubleshooting +- Ensure you have .NET 4.8+ installed +- Check your API key and network connection for LLM access +- For plugin errors, review the application logs in the output window + ## Contributing We welcome contributions! Please feel free to submit issues, suggestions, or pull requests. Your collaboration is essential for making Recursive Control powerful and versatile. +## Community & Support +- [GitHub Issues](https://github.com/flowdevs-io/Recursive-Control/issues) for bug reports and feature requests +- [Discussions](https://github.com/flowdevs-io/Recursive-Control/discussions) for Q&A and ideas +- [LinkedIn](https://www.linkedin.com/company/flowdevs) for updates and networking + ## License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. From 0986af2fe2212c52db0ca41340e7e38ec00d2e82 Mon Sep 17 00:00:00 2001 From: Justin Trantham Date: Wed, 30 Apr 2025 20:31:03 -0500 Subject: [PATCH 4/6] Update README.md --- README.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b508180..689bb0d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,8 @@ Download the latest release from the [Releases](https://github.com/flowdevs-io/R 1. Run recursivecontrol.exe 2. Setup your LLM ![image](https://github.com/user-attachments/assets/5dc4f034-794c-46c8-bf96-a4c95db05886) -3. Start asking questions +3. Input your commands directly into the UI, and watch as AI automate your tasks. + ### Development @@ -51,15 +52,6 @@ Download the latest release from the [Releases](https://github.com/flowdevs-io/R dotnet build ``` -### Usage - -Run the application: -```bash -dotnet run -``` - -Input your commands directly into the console, and watch as AI automates your tasks. - ## Plugin System Recursive Control supports a modular plugin system, allowing you to extend its capabilities. Plugins can automate keyboard, mouse, window management, screen capture, command line, and more. You can find plugin implementations in the `FlowVision/lib/Plugins/` directory. To add your own plugin, implement the required interface and register it in the application. @@ -86,8 +78,7 @@ FlowVision/ # Main application source content/ # Images and assets ``` -## Example Use Cases -- Automate daily report generation and emailing +## Example Use Cases= - Control applications via natural language (e.g., "Open Excel and create a new spreadsheet") - Capture and process screenshots for documentation - Batch rename files or organize folders @@ -95,7 +86,7 @@ content/ # Images and assets ## Troubleshooting - Ensure you have .NET 4.8+ installed - Check your API key and network connection for LLM access -- For plugin errors, review the application logs in the output window +- For plugin errors, review the application logs in %appdata%\FlowVision\plugin_usage.log ## Contributing @@ -112,5 +103,21 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file ## Contact -For any questions, feedback, or collaboration inquiries, please connect with us through our GitHub repository or via LinkedIn. +For any questions, feedback, or collaboration inquiries, please connect with us through our GitHub repository, or via LinkedIn. + +## Citation +If you use Browser Use in your research or project, please cite: + +```bibtex +@software{browser_use2024, + author = {Trantham, Justin}, + title = {Recursive Control: AI Control for Windows Computers }, + year = {2025}, + publisher = {GitHub}, + url = {https://github.com/flowdevs-io/Recursive-Contro} +} +``` +
    +Made and owned by Engineers +
    From 620b7a1962d82dd364ce99cbb02ebfbadcc8d3a6 Mon Sep 17 00:00:00 2001 From: Justin Trantham Date: Wed, 30 Apr 2025 20:37:36 -0500 Subject: [PATCH 5/6] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 689bb0d..15c8ee7 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@

    ๐Ÿ“Ž AI Control for Windows Computers ๐Ÿ“Ž

    +[![Join us on Discord](https://img.shields.io/badge/Join_our_Discord-7289DA?logo=discord&logoColor=white&labelColor=5865F2)](https://discord.gg/mQWsWeHsVU) + Recursive Control is an innovative project designed to enable artificial intelligence (AI) to interact seamlessly with your computer, automating tasks, performing complex workflows, and enhancing productivity. ## Project Goal @@ -110,7 +112,7 @@ For any questions, feedback, or collaboration inquiries, please connect with us If you use Browser Use in your research or project, please cite: ```bibtex -@software{browser_use2024, +@software{recursive-control2025, author = {Trantham, Justin}, title = {Recursive Control: AI Control for Windows Computers }, year = {2025}, From dcb290e8aff167f28b168f0bbf004a32f23fbd63 Mon Sep 17 00:00:00 2001 From: CakeRepository Date: Wed, 30 Apr 2025 20:53:16 -0500 Subject: [PATCH 6/6] update readme final readme before go-live --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 15c8ee7..75a286f 100644 --- a/README.md +++ b/README.md @@ -80,11 +80,26 @@ FlowVision/ # Main application source content/ # Images and assets ``` -## Example Use Cases= +## Example Use Cases - Control applications via natural language (e.g., "Open Excel and create a new spreadsheet") - Capture and process screenshots for documentation - Batch rename files or organize folders +## Roadmap + +### Near-Term Goals +- [ ] **Content warning logging**: Implement logging for content warnings to improve safety and transparency. +- [ ] **Model Support**: Add support for Gemini, OLLAMA, OpenAI, Bedrock, Phi4, and Phi Silica models. +- [ ] **Improved Speech Recognition**: Move away from System.Speech.Recognition (which is slow and inaccurate for voice commands) and adopt real-time audio models from OpenAI or similar providers. + +### Farther Out +- [ ] **Local Bbox Search**: Reduce token usage by integrating Bbox search locally (using OLLAMA, Phi Silica, or other novel SLMs). +- [ ] **Managed LLM Integration**: Develop Recursive Control managed LLM for non-user configurable integration, enabling billing for usage or subscription plans. +- [ ] **YOLO Bbox Parser Integration**: Integrate Yolo Bbox parser using ONNX for advanced vision capabilities. + +### End Goal +Recursive Control running on every Windows computer, leveraging local SLMs, Recursive Control hosted LLMs, and embedded YOLO vision models. The ultimate aim is to make the integration so seamless that new PC users will no longer need a keyboard or mouseโ€”just interact with the latest LLM, and it will turn words into commands. So easy our elders will even use it. + ## Troubleshooting - Ensure you have .NET 4.8+ installed - Check your API key and network connection for LLM access