Package: gptui
GPTUIEnglish readme•简体中文 readmeGPTUI is a GPT conversational TUI (Textual User Interface) tool that runs within the terminal.
Using the Textual framework for its TUI interface and equipping the plugin framework provided by Semantic Kernel.
GPTUI offers a lightweightKernelto power AI applications.
The top-level TUI application is decoupled from the underlying Kernel, allowing you to easily replace the TUI interface or expand its functionalities.
At present, only the GPT model of OpenAI is supported, and other LLM interfaces will be added later.TUI FeaturesCreate and manage conversations with GPT.Display context tokens in real-time.View and adjust GPT conversation parameters at any time, such as temperature, top_p, presence_penalty, etc.A dedicated channel to display internal process calls.Offers a file channel through which you can upload to or download from GPT.Voice functionality.Group talk functionality[^recommend_better_model][^token_cost].AI-Care. Your AI can propactively care for you[^ai_care].Optional built-in plugins (continuously evolving):Internet search[^google_key].Open interpreter[^open_interpreter][^token_cost][^recommend_better_model]. (Temporarily removed, waiting to be added back after it supports openai v1.x.)Reminders[^recommend_better_model].Recollecting memories from vectorized conversation history.Support custom plugins.[^open_interpreter]: This plugin utilizesopen-interpreter, you need to
first follow the instructions provided by open-interpreter to properly set up the environment and API.
The open-interpreter has the permission to execute code, please ensure that you are already aware of the associated risk before
enabling this feature.
[^recommend_better_model]: It is recommended to use this under the GPT-4 model or a better one.
[^token_cost]: Note: This feature may incur a significant token cost.
[^ai_care]: Powered byAI-Care.
[^google_key]:GOOGLE_KEYandGOOGLE_CXare required. Obtained free fromhere.🎬 Demo VideosAI-CareCompatibilityGPTUI runs in a command line environment and is compatible with Linux, macOS, Windows and Android[^compatibility].
Using the functionality provided by textual-web, you can also run GPTUI in the browser and share it with remote friends👍.[^compatibility]: I haven't tested it on the Windows platform yet, and some functionalities like code copying,
voice features, etc., still need drivers to be written. I will complete these features later.
When running on Android, please use theTermuxterminal tool.
For additional features like code copying and voice functionalities,
you need to installTermux-APIand grant the necessary permissions.⚙️ GPTUI KernelGPTUI offers a lightweight Kernel for building AI applications, allowing you to easily expand GPTUI's capabilities or construct your own AI application.Thekernelrelies onjobsandhandlersto perform specific functions.
To achieve new functionalities, all you need to do is write or combine your ownjobsandhandlers.
Themanagerandkernelof GPTUI are entirely independent of theclientapplication, enabling you to effortlessly relocate themanagerorkernelfor use elsewhere.
The application layer of GPTUI (client) employs the CVM architecture, where the model layer provides foundational, reusable modules for interaction with LLM, independent of specific views and controllers implementations.
If you wish to build your own AI application, you can start here, fully utilizing thekernel,manager, and models.
To alter or expand UI functionalities, typically, only modifications to the controllers and views are needed.See Development Documentation for details.Documentation.If you need to use certain functions or components of gptui, you can import and use gptui as a library.InstallationNormal use requires ensuring stable network connection to OpenAI.
If you encounter any issues, please refer totroubleshooting.Install with pippip install gptuiConfig your API keysbefore running.To run：gptuiSpecify config file：gptui --config <your_config_file_path>This program loads files through the following steps:Read the configuration file from --config. If not specified, proceed to the next step.Search for ~/.gptui/.config.yml in the user directory. If not found, move to the next step.Copy the default configuration file gptui/config.yml to ~/.gitui/.config.yml and use it.Install from sourcegit clone https://github.com/happyapplehorse/gptui.git
cd gptui
pip install .API configuration is required before running.To run:gptui# Or you can also use# python -m gptuiYou can also directly run the startup script (this allows you to modify the source code and run it immediately):
First, install the dependencies:pip install -r requirements.txtThen, run the startup script:python main.pyWhen running the program withpython main.pyorpython -m gptui, usegptui/config.ymlas the configuration file.On Linux or macOS systems, if you want to use voice functionalities, you'll need to install pyaudio separately.ConfigurationConfig API keysConfigure the corresponding API Keys in~/.gptui/.env_gptui.
Refer to the.env_gptui.examplefile.
When using the "WebServe" plugin,GOOGLE_KEYandGOOGLE_CXneed to be provided, which can beobtainedfree of charge from Google.Config FileSee./config.ymlfor a config file example that lists all configurable options.
Depending on the platform you are using, it is best to configure the following options:os: system platformOtherwise, some features may not work properly, such as code copy and voice related functions.Configuration GuideFor detailed configuration instructions, please refer tohere.Quick StartInterface Layoutchat area: Display area for chat content.status area： Program status display area, displaying response animations and notifications.input area: Chat content input area.auxiliary area: Auxiliary information area, displaying "internal communication" between the program and the LLM, including function call information, etc.control area: The program's control area, where you can view and set the state of the program, such as change OpenAI chat parameters.chat tabs: Conversation Tab Bar.conversation control: Conversation control buttons. From top to bottom they are:+:New conversation>:Save conversation<:Load conversation-:Delete conversationx:Delete conversation filen:Disposable conversation↥:Upload filepanel selector: Panel selection area. From top to bottom they are：C:Conversation file recordsD:System file treeA:Auxiliary information panelT:File pipeline panelP:Plugin selection panelswitches：Direct control switches. From left to right they are：R:Program state auto save and restore switchV:Voice switchS:Read reply by voiceF:Fold files in chat|Exit|:Exit programdashboard：Context window size for chat.others:<:Previous chat>:Next chat1:Number of chats☌:[Running status](#Running status)↣:Fold right non-chat area?:Help documentationRunning status☌: Ready.☍: Task running.Dynamic CommandsSwitch toSin the control area, enter the command and press enter. Currently supports the following commands:Set chat parameters
Command:set_chat_parameters()Parameters: OpenAI chat parameters in dictionary form, refer toOpenAI Chat.Example:set_chat_parameters({"model": "gpt-4", "stream": True})Set max sending tokens ratio
Command:set_max_sending_tokens_ratio()Parameters: The ratio of the number of sent tokens to the total token window, in float form. The remaining token count is used as the limit for the number of tokens GPT returns.Example:set_max_sending_tokens_ratio(0.5)HotkeysGPTUI provides hotkeys for commonly used features, seeHelp.
In addition, you can also pressESC,ctrl+[, orctrl+/to bring up the hotkey menu (this mode offers more comprehensive hotkey functionalities, but they are not exactly the same as the direct hotkeys.).DocumentationFor detailed usage and development instructions, seehere, for in-program help documentation seehere.ContributionSome of GPTUI's plugin features rely on prompt, you can continue to help me improve these prompt.
And I'd like to have appropriate animation cues during certain state changes.
If you have any creative ideas, I'd appreciate your help in implementing them.
P.S.: Each contributor can leave a quote in the program.NoteThis project utilizes OpenAI's Text-to-Speech (TTS) services for generating voice outputs.
Please be aware that the voices you hear are not produced by human speakers, but are synthesized by AI technology.LicenseGPTUI is built upon a multitude of outstanding open-source components and adheres to theMIT Licenseopen-source agreement.
You are free to use it.