Skip to content

Commit 48e35e9

Browse files
Updating README and cleaning up documentation (#286)
1 parent c7cc185 commit 48e35e9

File tree

10 files changed

+114
-163
lines changed

10 files changed

+114
-163
lines changed

README.md

Lines changed: 81 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,83 @@
1-
# Welcome to Project Mercury
1+
# AI Shell (a.k.a Project Mercury)
22

3-
**Project Mercury** contains our latest CLI tool that provides an interactive shell session to chat
4-
with language models, creating an *AI Shell*. Users can use _agents_ to interact with different AI models, or other
5-
assistance providers, in a conversational manner. **Project Mercury** also provides a framework for
6-
creating AI agents.
3+
Welcome to the **AI Shell** repository! AI Shell is a CLI tool that brings the power of artificial
4+
intelligence directly to your command line! Designed to help you get command assistance from various
5+
AI assistants, AI Shell is a versatile tool to help you become more productive in the command line.
6+
We call these various AI assistant providers _agents_. You can use agents to interact with different
7+
generative AI models or other AI/ML/assistant providers in a conversational manner. This repo
8+
contains the code of the AI Shell engine, agents and details on how to create your own agent.
79

8-
Why the name **Project Mercury**? The name is inspired both by the Roman god of messages and the
9-
first human spaceflight by the US. This project is our first step into the new world of AI powered
10-
assistance and focuses on being the connection (or messenger) between the user and the AI model.
10+
Why the name **Project Mercury**? This was the original code name of the project and was inspired
11+
both by the Roman god of messages and the first human spaceflight by the US. This project is our
12+
first step into the new world of AI powered assistance and focuses on being the connection (or
13+
messenger) between the user and the AI model.
1114

12-
This project is currently in the **alpha** phase. Expect many significant changes to the code as we
13-
experiment and refine the user experiences of this tool. We appreciate your feedback and patience as
14-
we continue our development.
15+
This project is currently in a very early **public preview** state. Expect many significant changes
16+
to the code as we experiment and refine the user experiences of this tool. We appreciate your
17+
feedback and patience as we continue our development.
1518

16-
![GIF showing demo of the AI Shell][04]
19+
## New to AI Shell?
1720

18-
## Installation
21+
To learn more about AI Shell, we recommend you check out the [overview][19] page of the AI Shell
22+
documentation.
23+
24+
### Usage
25+
26+
There are two modes to use AI Shell, standalone and a side-by-side, integrated experience with
27+
PowerShell 7. For more information see,
28+
- [Get Started with AI Shell in PowerShell][15]
29+
- [Get Started with AI Shell (standalone)][16]
30+
31+
### AI Shell in PowerShell
32+
33+
![GIF showing demo of the AI Shell in PowerShell][21]
34+
35+
### Standalone experience
36+
37+
![GIF showing demo of the AI Shell standalone][20]
38+
39+
## Getting AI Shell
40+
41+
AI Shell is supported on Windows, MacOS and Linux, however the best experience you can have is with
42+
Windows, [PowerShell 7][11] and [Windows Terminal][14]. For more information see,
43+
[Installing AI Shell][13].
44+
45+
## Locally Building AI Shell
1946

2047
Some prerequisites for building an AI Shell:
2148

22-
- Build script requires PowerShell v7.2 or newer versions
23-
- [PowerShell v7.4][11] is recommended
49+
- Build script requires [PowerShell v7.4][18] or newer versions
2450
- [.NET SDK 8][09] is required to build the project
2551

2652
Here are the steps to install and use.
2753

2854
1. Clone this repository, `git clone https://github.com/PowerShell/ProjectMercury`
2955
2. Import the `build.psm1` module by running `import-module ./build.psm1`
30-
3. Run the `Start-Build` command
56+
3. Run the `Start-Build` command (You can specify which agents build with the `-AgentsToInclude`
57+
parameter)
3158
4. After the build is complete, you can find the produced executable `aish` in the `out\debug\app`
3259
folder within the repository's root directory. You can add the location to the `PATH` environment
3360
variable for easy access. The full path is copied to your clipboard after successful build.
3461

3562
## AI Agents
3663

3764
Project Mercury provides a framework for creating and registering multiple AI Agents. The agents are
38-
libraries that you use to interact with different AI models or assistance providers. Currently,
39-
these are the supported agents:
65+
libraries that you use to interact with different AI models or assistance providers. AI Shell
66+
releases with two agents, the `openai-gpt` and `azure` agent. However there are additional ones
67+
supported if you locally build the project:
4068

4169
Agent README files:
4270

43-
- [`openai-gpt`][08]
71+
- [`openai-gpt`][08] (shipped with AI Shell)
4472
- [`ollama`][06]
4573
- [`interpreter`][07]
74+
- [`azure`][17] (shipped with AI Shell)
4675

4776
When you run `aish`, you are prompted to choose an agent. For more details about each agent, see the
4877
README in the each agent folder.
4978

5079
To learn more about how to create an agent for yourself please see, [Creating an Agent][03].
5180

52-
## Usage
53-
54-
To start a chat session with the LLM, run `aish`, which starts a new session in your current window.
55-
Choose the agent you would like to use. Once you select an agent you can begin your conversation.
56-
57-
We suggest using a split pane approach with the terminal of choice. In Windows Terminal, use the
58-
following command to start `aish` in a new split pane:
59-
60-
```shell
61-
wt -w 0 sp aish
62-
```
63-
64-
You can bind this command to a key like `F3` in your PowerShell session. Add the following code to
65-
your `$PROFILE` script:
66-
67-
```powershell
68-
$PSReadLineSplat = @{
69-
Chord = 'F3'
70-
ScriptBlock = {
71-
wt -w 0 sp --tabColor '#345beb'--size 0.4 -p $env:WT_PROFILE_ID --title 'AIShell' <full-path-to-aish.exe>
72-
}
73-
}
74-
Set-PSReadLineKeyHandler @PSReadLineSplat
75-
```
76-
77-
Similarly, you can use iTerm2 to get a similiar split pane experience on MacOS. You can split the pane vertically by pressing `Cmd + D` and then run `aish` in one of the panes.
78-
7981
### Chat commands
8082

8183
By default, `aish` provides a base set of chat `/` commands used to interact with the responses from
@@ -96,14 +98,15 @@ the AI model. To get a list of commands, use the `/help` command in the chat ses
9698
/retry Regenerate a new response for the last query. Core
9799
```
98100

99-
Also, agents can implement their own commands. For example, the `openai-gpt` agent register the command `/gpt`
100-
for managing the GPTs defined for the agent. Some commands, such as `/like` and `/dislike`, are commands that
101-
sends feedback to the agents. It is up to the agents to consume the feedback.
101+
Also, agents can implement their own commands. For example, the `openai-gpt` agent register the
102+
command `/gpt` for managing the GPTs defined for the agent. Some commands, such as `/like` and
103+
`/dislike`, are commands that sends feedback to the agents. It is up to the agents to consume the
104+
feedback.
102105

103106
### Key bindings for commands
104107

105-
AI Shell supports key bindings for the `/code` command.
106-
They are currently hard-coded, but custom key bindings will be supported in future releases.
108+
AI Shell supports key bindings for the `/code` command. They are currently hard-coded, but custom
109+
key bindings will be supported in future releases.
107110

108111
| Key bindings | Command | Functionality |
109112
| ------------------------- | ---------------- | ------------- |
@@ -114,10 +117,12 @@ They are currently hard-coded, but custom key bindings will be supported in futu
114117

115118
### Configuration
116119

117-
Currently, AI Shell supports very basic configuration. One can creates a file named `config.json` under `~/.aish` to configure AI Shell,
118-
but it only supports declaring the default agent to use at startup. This way you do not need to select agents everytime you run `aish.exe`
120+
Currently, AI Shell supports very basic configuration. One can creates a file named `config.json`
121+
under `~/.aish` to configure AI Shell, but it only supports declaring the default agent to use at
122+
startup. This way you do not need to select agents every time you run `aish.exe`
119123

120-
Configuration of AI Shell will be improved in future releases to support custom key bindings, color themes and more.
124+
Configuration of AI Shell will be improved in future releases to support custom key bindings, color
125+
themes and more.
121126

122127
```json
123128
{
@@ -131,14 +136,17 @@ Please see [CONTRIBUTING.md][02] for more details.
131136

132137
## Privacy
133138

134-
AIShell does not capture, collect, store, or process any personal data or personally identifiable information (PII). All data interactions
135-
are limited to the scope of the functionality provided by the tool and do not involve any form of personal data collection.
139+
AI Shell does not capture, collect, store, or process any personal data or personally identifiable
140+
information (PII). All data interactions are limited to the scope of the functionality provided by
141+
the tool and do not involve any form of personal data collection.
136142

137-
Some agents integrated with AIShell may collect telemetry data to improve performance, enhance user experience, or troubleshoot issues.
138-
We recommend that you refer to the individual agent’s README or documentation for more information on the telemetry practices and data collection
139-
policies for each agent.
143+
Some agents integrated with AI Shell may collect telemetry data to improve performance, enhance user
144+
experience, or troubleshoot issues. We recommend that you refer to the individual agent’s README or
145+
documentation for more information on the telemetry practices and data collection policies for each
146+
agent.
140147

141-
If you are interested in learning more, see [Microsoft's Privacy Statement](https://www.microsoft.com/en-us/privacy/privacystatement?msockid=1fe60b30e66967f13fb91f29e73f661a).
148+
If you are interested in learning more, see
149+
[Microsoft's Privacy Statement](https://www.microsoft.com/en-us/privacy/privacystatement?msockid=1fe60b30e66967f13fb91f29e73f661a).
142150

143151
## Support
144152

@@ -155,7 +163,7 @@ For any security issues, please see our [Security Policy][12].
155163
## Feedback
156164

157165
We're still in development and value your feedback! Please file [issues][10] in this repository for
158-
bugs, suggestions, or feedback.
166+
bugs, suggestions, or feedback. If you would like to give more candid feedback and sign up for testing future versions and features before they are released, please fill out this [form][22].
159167

160168
<!-- link references -->
161169
[01]: ./docs/CODE_OF_CONDUCT.md
@@ -165,8 +173,19 @@ bugs, suggestions, or feedback.
165173
[05]: ./docs/SUPPORT.md
166174
[06]: ./shell/agents/AIShell.Ollama.Agent/README.md
167175
[07]: ./shell/agents/AIShell.Interpreter.Agent/README.md
168-
[08]: ./shell/agents/AIShell.OpenAI.Agent/README.md
176+
[08]: https://learn.microsoft.com/powershell/utility-modules/aishell/how-to/agent-openai
169177
[09]: https://dotnet.microsoft.com/en-us/download
170178
[10]: https://github.com/PowerShell/ProjectMercury/issues
171179
[11]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell
172180
[12]: ./docs/SECURITY.md
181+
[13]: https://learn.microsoft.com/powershell/utility-modules/aishell/install-aishell
182+
[14]: https://learn.microsoft.com/windows/terminal/
183+
[15]: https://learn.microsoft.com/powershell/utility-modules/aishell/get-started/aishell-powershell
184+
[16]:https://learn.microsoft.com/powershell/utility-modules/aishell/get-started/aishell-standalone
185+
[17]: https://learn.microsoft.com/powershell/utility-modules/aishell/how-to/agent-azure
186+
[18]: https://github.com/PowerShell/PowerShell/releases/tag/v7.4.6
187+
[19]: https://learn.microsoft.com/powershell/utility-modules/aishell/overview
188+
[20]: ./docs/media/standalone-startup.gif
189+
[21]: ./docs/media/aishellwithPowerShell.gif
190+
[22]: https://aka.ms/AIShell-Feedback
191+
[logo]: ./docs/media/AIShellIconSVG.svg

docs/media/AIShellIconPNG.png

93.4 KB
Loading

docs/media/AIShellIconSVG.svg

Lines changed: 18 additions & 0 deletions
Loading

docs/media/aishellwithPowerShell.gif

1.11 MB
Loading

docs/media/standalone-startup.gif

6.1 MB
Loading

shell/AIShell.Kernel/Shell.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ private void LoadAvailableAgents()
286286
chosenAgent ??= _agents.Count is 1
287287
? _agents[0]
288288
: Host.PromptForSelectionAsync(
289-
title: "[orange1]Please select an [Blue]agent[/] to use[/]:\n[grey](You can switch to another agent later by typing [Blue]@<agent name>[/])[/]",
289+
title: "Welcome to AIShell! We’re excited to have you explore our [bold]Public Preview[/]. Documentation is available at [link=https://aka.ms/AIShell-Docs]aka.ms/AIShell-Docs[/], and we’d love to hear your thoughts - share your feedback with us at [link=https://aka.ms/AIShell-Feedback]aka.ms/AIShell-Feedback[/].\n\n[orange1]Please select an AI [Blue]agent[/] to use[/]:\n[grey](You can switch to another agent later by typing [Blue]@<agent name>[/])[/]",
290290
choices: _agents,
291291
converter: static a => a.Impl.Name)
292292
.GetAwaiter().GetResult();

0 commit comments

Comments
 (0)