|
1 | | -# ui |
2 | | -This provides a graphical interface to run and build your GPTScripts. |
| 1 | +# Desktop |
3 | 2 |
|
4 | | - |
| 3 | +The best way to build AI Assistants. |
5 | 4 |
|
6 | | -## Running |
7 | | -The UI is baked directly into the [gptscript](https://docs.gptscript.ai/) CLI. To run the UI, simply run the following command: |
| 5 | +https://github.com/user-attachments/assets/b9cfa1c3-ba76-4193-84bf-115096b1a3ee |
8 | 6 |
|
9 | | -```bash |
10 | | -gptscript --ui |
11 | | -``` |
| 7 | +## Features |
12 | 8 |
|
13 | | -You can also specify a specific script to run (locally or remote). |
| 9 | +Acorn Desktop currently has three key features: |
14 | 10 |
|
15 | | -```bash |
16 | | -gptscript --ui github.com/gptscript-ai/llm-basics-demo |
17 | | -``` |
| 11 | +- 🛠️ **Build**: Build and share new assistants. |
| 12 | +- 🌐 **Explore**: Discover assistants created by Acorn Labs and community members. |
| 13 | +- 💬 **Chat**: Access your past chats (including this one) and start new ones. |
| 14 | + |
| 15 | +## Tools |
| 16 | +Tools are Acorn Desktop's super power. They let the user and assistants interact with the rest of the world, including the user's workstation, APIs, and the Internet. |
| 17 | + |
| 18 | +A tool is a self-contained piece of functionality that an assistant can use to accomplish the tasks that a user lays out for it. Tools themselves can be LLM instructions, code-based (in python, node.js, or bash), or integrations with external systems. |
| 19 | + |
| 20 | +When we say “integration with external systems,” we are primarily talking about API and CLI based integrations. In our Tool Catalog, you’ll find integrations with various APIs and CLIs. Our API integrations even handle authentication for you via OAuth. Some may prompt you for an API key if the service being called doesn’t support OAuth. Our CLI-based tools require that you have the corresponding cli on your workstation and that you’ve configured it and authenticated with it. The tool will test for the presence of the CLI and inform the assistant of whether it is available or not. |
| 21 | + |
| 22 | +These integrations are extremely powerful, but may lead users to be concerned about security or the LLM taking actions on behalf of the user that the user doesn’t want it to. Here is how we address that: |
| 23 | +1. Know that credentials DO NOT go to the LLM. The Oauth authentication flow is outside the LLM. Logging into your CLI must happen outside of your assistant chat. If a tool does prompt for a credential, such as an API key, that is handled entirely through traditional code and stored securely on your workstation. The credential never goes to the LLM. |
| 24 | +2. Whenever the assistant decides it wants to call a tool, you will be prompted to authorize that call. This lets you know exactly what actions are going to be taken. Again, this prompting is in traditional code, it is not controlled by the LLM. |
| 25 | + |
| 26 | +When creating an assistant, you can also author new tools inline if you can’t find the integration you need. We provide a code editor right in the app. We also support installing dependencies for these tools. For python we allow you to create a requirements.txt and for Node.js, a package.json. If users need to write a particularly complex tool, they can author it as an independent GPTScript, upload it to GitHub, and import it to your assistant. See https://docs.gptscript.ai/tools/authoring for more details |
| 27 | + |
| 28 | +Here's just some of the tools available to you: |
| 29 | + |
| 30 | +#### AI and The Internet |
| 31 | + |
| 32 | +- [Vision](https://github.com/gptscript-ai/gpt4-v-vision) |
| 33 | +- [Image Generation](https://github.com/gptscript-ai/dalle-image-generation) |
| 34 | +- [Answers from the Internet](https://github.com/gptscript-ai/answers-from-the-internet) |
| 35 | +- [Search Website](https://github.com/gptscript-ai/search-website) |
| 36 | +- [Browser](https://github.com/gptscript-ai/browser) |
| 37 | + |
| 38 | +#### Productivity |
| 39 | + |
| 40 | +- [Outlook Mail](https://github.com/gptscript-ai/tools/tree/main/apis/outlook/mail) |
| 41 | +- [Outlook Calendar](https://github.com/gptscript-ai/tools/tree/main/apis/outlook/calendar) |
| 42 | +- [Notion](https://github.com/gptscript-ai/tools/tree/main/apis/notion) |
| 43 | +- [Slack](https://github.com/gptscript-ai/tools/tree/main/apis/slack) |
| 44 | +- [Trello](https://github.com/gptscript-ai/tools/tree/main/apis/trello) |
| 45 | + |
| 46 | +#### Working with Local Files |
| 47 | + |
| 48 | +- [Knowledge](https://github.com/gptscript-ai/knowledge) |
| 49 | +- [Structured Data Querier](https://github.com/gptscript-ai/structured-data-querier) |
| 50 | +- [Filesystem](https://github.com/gptscript-ai/context/tree/main/filesystem) |
| 51 | +- [Workspace](https://github.com/gptscript-ai/context/tree/main/workspace) |
| 52 | +- [PDF OCR Reader](https://github.com/gptscript-ai/pdf-tool/tree/main/gateway) |
| 53 | + |
| 54 | +#### Coding and DevOps |
| 55 | + |
| 56 | +- [AWS](https://github.com/gptscript-ai/tools/tree/main/clis/aws) |
| 57 | +- [Azure](https://github.com/gptscript-ai/tools/tree/main/clis/azure) |
| 58 | +- [Digital Ocean](https://github.com/gptscript-ai/tools/tree/main/clis/digitalocean) |
| 59 | +- [EKS](https://github.com/gptscript-ai/tools/tree/main/clis/eksctl) |
| 60 | +- [GCP](https://github.com/gptscript-ai/tools/tree/main/clis/gcp) |
| 61 | +- [Github](https://github.com/gptscript-ai/tools/tree/main/clis/github) |
| 62 | +- [k8s](https://github.com/gptscript-ai/tools/tree/main/clis/k8s) |
| 63 | +- [Supabase cli](https://github.com/gptscript-ai/tools/tree/main/clis/supabase) |
| 64 | +- [Supabase API](https://github.com/gptscript-ai/tools/tree/main/apis/supabase) |
18 | 65 |
|
19 | 66 | ## Development |
| 67 | + |
20 | 68 | If you'd like to contribute to the UI, you can run the following commands to get started: |
21 | 69 |
|
22 | 70 | ```bash |
23 | 71 | git clone |
24 | | -cd ui |
| 72 | +cd desktop |
25 | 73 | npm install |
26 | | -npm run dev |
| 74 | +npm run dev:electron |
27 | 75 | ``` |
28 | 76 |
|
29 | | -From here any changes you make to the NextJS app will be hot reloaded. Changes to `server.mjs` |
30 | | -will require a restart of the server. |
31 | | - |
32 | 77 | ### Tech stack |
| 78 | + |
| 79 | +- [GPTScript](https://gptscript.ai). |
33 | 80 | - [React](https://reactjs.org/) |
34 | 81 | - [TailwindCSS](https://tailwindcss.com/) |
35 | 82 | - [Next.js](https://nextjs.org/) |
36 | 83 | - [TypeScript](https://www.typescriptlang.org/) |
37 | | -- [Socket.io](https://socket.io/) |
| 84 | +- [Socket.io](https://socket.io/) |
| 85 | +- [Electron](https://www.electronjs.org/) |
0 commit comments