From 1e0c9de3c6a59979416b80b7cbee48ed7460aa47 Mon Sep 17 00:00:00 2001
From: Dave Kerr
Date: Tue, 6 May 2025 08:14:08 +0100
Subject: [PATCH 01/12] feat(docs): msty config guide (#97)
---
README.md | 3 ++-
docs/configuration.md | 12 +++++++++++
docs/providers/msty.md | 46 ++++++++++++++++++++++++++++++++++++++----
3 files changed, 56 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 44f9864..d48fa93 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
🧠terminal-ai
Effortless AI in the shell. Maintain your flow and be more effective.
- Supports OpenAI, Gemini, Claude, Ollama and many more
+ Supports OpenAI, Gemini, Claude, Ollama, MSTY and many more
@@ -339,3 +339,4 @@ To configure multiple providers or advanced options, check the [Configuration Do
- [Developer Guide](./docs/developer-guide.md)
- [Experimental Features](./docs/experimental-features.md)
- [Providers: Setting Up Ollama](./docs/providers/ollama.md)
+- [Providers: Setting Up MSTY](./docs/providers/msty.md)
diff --git a/docs/configuration.md b/docs/configuration.md
index a9da72f..166d63e 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -213,4 +213,16 @@ providers:
baseURL: https://api.anthropic.com/v1
model: claude-3-opus-20240229
apiKey: '123'
+ msty:
+ name: msty
+ type: openai_compatible
+ baseURL: http://localhost:10000/v1/
+ model: gemma3:1b
+ apiKey: 'notused'
+ ollama:
+ name: ollama
+ type: openai_compatible
+ baseURL: http://localhost:11434/v1/
+ model: gemma3:1b
+ apiKey: 'notused'
```
diff --git a/docs/providers/msty.md b/docs/providers/msty.md
index cf27212..4b1c475 100644
--- a/docs/providers/msty.md
+++ b/docs/providers/msty.md
@@ -2,9 +2,47 @@
Terminal AI works out of the box with Msty.
-To get started, first install: https://msty.app/
+To get started, first install Msty: https://msty.app/
-Run Msty and configure a model. As an example we'll use Cohere as a remote provider:
+Once Msty is installed and running, you'll have access to various models through its local API server. Msty will automatically start an API server on port 10000 by default.
-- New Remote Model Provider: Cohere AI
-- API Key: (Provide your API key)
+Then run `ai init` to configure your provider, using the following details:
+
+- Provider Type: OpenAI Compatible
+- API Key: `notused` (by default, Msty doesn't need a key, but Terminal AI requires one to be configured)
+- Base URL: `http://localhost:10000/v1/`
+- Model: Choose from one of your available models (e.g. `gemma3:1b` or `llama3.2:latest`)
+
+Choose 'yes' for 'Set as current provider' and 'Test API Key & Configuration'. You will see output similar to the below:
+
+```
+✔ Set as current provider? Yes
+✔ Test API Key & Configuration? Yes
+✔ Checking internet connection...
+✔ Checking Base URL http://localhost:10000/v1/...
+✔ Checking API key...
+✔ Checking Model gemma3:1b...
+✔ Checking API key rate limit...
+```
+
+At this point you will be able to chat using your local Msty installation:
+
+```
+✔ chat: hi msty
+msty: Hello! How can I assist you today?
+```
+
+You can also manually add the Msty provider details to your [Configuration File](../configuration.md):
+
+```yaml
+provider: msty
+providers:
+ msty:
+ name: msty
+ type: openai_compatible
+ baseURL: http://localhost:10000/v1/
+ model: gemma3:1b
+ apiKey: notused
+```
+
+If you're using Msty with a remote provider (like Cohere), make sure that model is properly configured in your Msty app before attempting to use it with Terminal AI.
From 8cd60bfe709a3c810ea3f8badef8e0138d6b7c08 Mon Sep 17 00:00:00 2001
From: Dave Kerr
Date: Fri, 9 May 2025 05:31:44 +0100
Subject: [PATCH 02/12] feat(config): improve provider/model setup (#99)
---
src/chat-pipeline/stages/ensure-api-key.ts | 2 +-
src/cli.ts | 2 +-
src/commands/init/init-first-run.ts | 7 +-
src/commands/init/init-regular-run.ts | 152 ++++++++++--------
src/commands/init/init-regular-run.ts.backup | 86 ++++++++++
src/commands/init/init.test.ts | 2 +-
src/commands/init/init.ts | 5 +-
.../select/select-edit-or-add-provider.ts | 12 +-
8 files changed, 187 insertions(+), 81 deletions(-)
create mode 100644 src/commands/init/init-regular-run.ts.backup
diff --git a/src/chat-pipeline/stages/ensure-api-key.ts b/src/chat-pipeline/stages/ensure-api-key.ts
index 3fc7ec1..40bad8c 100644
--- a/src/chat-pipeline/stages/ensure-api-key.ts
+++ b/src/chat-pipeline/stages/ensure-api-key.ts
@@ -20,5 +20,5 @@ export async function ensureApiKey(executionContext: ExecutionContext) {
// Initialise, this will mutate execution context to set the key, or die
// trying.
- return await init(executionContext, true);
+ return await init(executionContext);
}
diff --git a/src/cli.ts b/src/cli.ts
index 4055b5f..800379b 100755
--- a/src/cli.ts
+++ b/src/cli.ts
@@ -81,7 +81,7 @@ const cli = async (program: Command, executionContext: ExecutionContext) => {
.command("init")
.description("Set or update configuration")
.action(async () => {
- const nextCommand = await init(executionContext, true);
+ const nextCommand = await init(executionContext);
// The only possible next action is chat or quit.
if (nextCommand === Commands.Chat) {
return chat(
diff --git a/src/commands/init/init-first-run.ts b/src/commands/init/init-first-run.ts
index f87d46b..4990fa0 100644
--- a/src/commands/init/init-first-run.ts
+++ b/src/commands/init/init-first-run.ts
@@ -14,7 +14,6 @@ import { initSetProviderApiKey } from "./init-set-provider-api-key";
*/
export async function initFirstRun(
executionContext: ExecutionContext,
- askNextAction: boolean,
): Promise {
const interactive = executionContext.isTTYstdin;
@@ -33,8 +32,6 @@ To get a free key follow the guide at:`,
);
await initSetProviderApiKey(executionContext);
- // We now continue with a regular init run (which'll offer the option to
- // update the model, whatever). However, we don't ask the user if they want
- // to change their API key.
- return await initRegularRun(executionContext, false, askNextAction);
+ // We now continue with a regular init run.
+ return await initRegularRun(executionContext);
}
diff --git a/src/commands/init/init-regular-run.ts b/src/commands/init/init-regular-run.ts
index 8982aa5..637c120 100644
--- a/src/commands/init/init-regular-run.ts
+++ b/src/commands/init/init-regular-run.ts
@@ -6,81 +6,105 @@ import { check } from "../../commands/check/check";
import { initUpdateProviders } from "./init-update-providers";
import { selectProvider } from "../../ui/select-provider";
import { updateConfigurationFile } from "../../configuration/update-configuration-file";
+import { selectModel } from "./select/select-model";
export async function initRegularRun(
executionContext: ExecutionContext,
- enableUpdateProvider: boolean,
- askNextAction: boolean,
): Promise {
- // If we have multiple providers, directly show the provider selection
- const providers = Object.values(executionContext.config.providers);
- if (providers.length > 1) {
- // Use the enhanced selectProvider with params object, passing current provider name as default
- const selectedProvider = await selectProvider({
- message: "Current Provider:",
- currentProvider: executionContext.provider,
- availableProviders: providers,
- default: executionContext.provider.name,
+ let mainOption = "";
+
+ // Create a loop to return to the main menu after actions
+ while (mainOption !== "exit" && mainOption !== "chat") {
+ // Start with a select menu for the main options
+ mainOption = await select({
+ message: inputPrompt("Terminal AI Configuration"),
+ choices: [
+ {
+ name: "1. Select current provider / model",
+ value: "select_provider",
+ },
+ {
+ name: "2. Configure or add provider",
+ value: "reconfigure_provider",
+ },
+ {
+ name: "3. Chat",
+ value: "chat",
+ },
+ {
+ name: "4. Exit",
+ value: "exit",
+ },
+ ],
});
- // Only update if the selected provider is different from current
- if (
- selectedProvider &&
- selectedProvider.name !== executionContext.provider.name
- ) {
- // Update the current provider directly in the execution context
- executionContext.provider = selectedProvider;
- // Update the configuration file
- updateConfigurationFile(executionContext.configFilePath, {
- provider: selectedProvider.name,
- });
+ if (mainOption === "exit") {
+ return Commands.Quit;
}
- }
- // If we are going to let the user update their provider, do so now.
- // The only reason we don't do this is if this function is coming
- // directly after the first-run init.
- if (enableUpdateProvider) {
- // Offer advanced options.
- const updateProvider = await confirm({
- message: "Reconfigure (key/model/etc) or add new Provider?",
- default: false,
- });
- if (updateProvider) {
- await initUpdateProviders(executionContext);
+ if (mainOption === "chat") {
+ return Commands.Chat;
}
- }
- // Offer to validate.
- const validate = await confirm({
- message: "Test API Key & Configuration?",
- default: false,
- });
- if (validate) {
- await check(executionContext);
- }
+ if (mainOption === "select_provider") {
+ // Select provider/model functionality
+ const providers = Object.values(executionContext.config.providers);
+ if (providers.length > 0) {
+ const selectedProvider = await selectProvider({
+ message: "Current Provider:",
+ currentProvider: executionContext.provider,
+ availableProviders: providers,
+ default: executionContext.provider.name,
+ });
- // Ask for the next action if we have chosen this option.
- if (!askNextAction) {
- return Commands.Unknown;
- }
- const answer = await select({
- message: inputPrompt("What next?"),
- default: "chat",
- choices: [
- {
- name: "Chat",
- value: "chat",
- },
- {
- name: "Quit",
- value: "quit",
- },
- ],
- });
- if (answer === "chat") {
- return Commands.Chat;
+ if (
+ selectedProvider &&
+ selectedProvider.name !== executionContext.provider.name
+ ) {
+ executionContext.provider = selectedProvider;
+ updateConfigurationFile(executionContext.configFilePath, {
+ provider: selectedProvider.name,
+ });
+ }
+
+ // Now allow selecting a model for the chosen provider
+ const provider = executionContext.provider;
+ const model = await selectModel(provider.model, provider.type);
+
+ if (model && model !== provider.model) {
+ provider.model = model;
+
+ // Save the model. It's either a named provider or the root provider.
+ if (provider.name !== "") {
+ updateConfigurationFile(executionContext.configFilePath, {
+ [`providers.${provider.name}.model`]: model,
+ });
+ } else {
+ updateConfigurationFile(executionContext.configFilePath, {
+ [`model`]: model,
+ });
+ }
+ }
+ } else {
+ console.log("No providers configured. Use option 2 to add a provider.");
+ }
+ } else if (mainOption === "reconfigure_provider") {
+ // Configure provider functionality
+ await initUpdateProviders(executionContext);
+ }
+
+ // Offer to validate configuration
+ if (mainOption !== "exit" && mainOption !== "chat") {
+ const validate = await confirm({
+ message: "Test API Key & Configuration?",
+ default: false,
+ });
+ if (validate) {
+ await check(executionContext);
+ }
+ }
}
- return Commands.Quit;
+ // This point is reached if chat was selected
+ return Commands.Chat;
}
diff --git a/src/commands/init/init-regular-run.ts.backup b/src/commands/init/init-regular-run.ts.backup
new file mode 100644
index 0000000..8982aa5
--- /dev/null
+++ b/src/commands/init/init-regular-run.ts.backup
@@ -0,0 +1,86 @@
+import { confirm, select } from "@inquirer/prompts";
+import { inputPrompt } from "../../theme";
+import { ExecutionContext } from "../../execution-context/execution-context";
+import { Commands } from "../commands";
+import { check } from "../../commands/check/check";
+import { initUpdateProviders } from "./init-update-providers";
+import { selectProvider } from "../../ui/select-provider";
+import { updateConfigurationFile } from "../../configuration/update-configuration-file";
+
+export async function initRegularRun(
+ executionContext: ExecutionContext,
+ enableUpdateProvider: boolean,
+ askNextAction: boolean,
+): Promise {
+ // If we have multiple providers, directly show the provider selection
+ const providers = Object.values(executionContext.config.providers);
+ if (providers.length > 1) {
+ // Use the enhanced selectProvider with params object, passing current provider name as default
+ const selectedProvider = await selectProvider({
+ message: "Current Provider:",
+ currentProvider: executionContext.provider,
+ availableProviders: providers,
+ default: executionContext.provider.name,
+ });
+
+ // Only update if the selected provider is different from current
+ if (
+ selectedProvider &&
+ selectedProvider.name !== executionContext.provider.name
+ ) {
+ // Update the current provider directly in the execution context
+ executionContext.provider = selectedProvider;
+ // Update the configuration file
+ updateConfigurationFile(executionContext.configFilePath, {
+ provider: selectedProvider.name,
+ });
+ }
+ }
+
+ // If we are going to let the user update their provider, do so now.
+ // The only reason we don't do this is if this function is coming
+ // directly after the first-run init.
+ if (enableUpdateProvider) {
+ // Offer advanced options.
+ const updateProvider = await confirm({
+ message: "Reconfigure (key/model/etc) or add new Provider?",
+ default: false,
+ });
+ if (updateProvider) {
+ await initUpdateProviders(executionContext);
+ }
+ }
+
+ // Offer to validate.
+ const validate = await confirm({
+ message: "Test API Key & Configuration?",
+ default: false,
+ });
+ if (validate) {
+ await check(executionContext);
+ }
+
+ // Ask for the next action if we have chosen this option.
+ if (!askNextAction) {
+ return Commands.Unknown;
+ }
+ const answer = await select({
+ message: inputPrompt("What next?"),
+ default: "chat",
+ choices: [
+ {
+ name: "Chat",
+ value: "chat",
+ },
+ {
+ name: "Quit",
+ value: "quit",
+ },
+ ],
+ });
+ if (answer === "chat") {
+ return Commands.Chat;
+ }
+
+ return Commands.Quit;
+}
diff --git a/src/commands/init/init.test.ts b/src/commands/init/init.test.ts
index b2aefee..8323648 100644
--- a/src/commands/init/init.test.ts
+++ b/src/commands/init/init.test.ts
@@ -7,7 +7,7 @@ describe("commands", () => {
const executionContext = createTestExecutionContext(process, {
isTTYstdin: false,
});
- await expect(() => init(executionContext, false)).rejects.toThrow(
+ await expect(() => init(executionContext)).rejects.toThrow(
/must be run interactively/,
);
});
diff --git a/src/commands/init/init.ts b/src/commands/init/init.ts
index 511ee15..d90f227 100644
--- a/src/commands/init/init.ts
+++ b/src/commands/init/init.ts
@@ -8,7 +8,6 @@ import { initRegularRun } from "./init-regular-run";
export async function init(
executionContext: ExecutionContext,
- askNextAction: boolean,
): Promise {
const interactive = executionContext.isTTYstdin;
@@ -26,6 +25,6 @@ export async function init(
// run (e.g. fresh install, or config blatted to the point we're
// fresh-install-like).
return executionContext.isFirstRun
- ? await initFirstRun(executionContext, askNextAction)
- : await initRegularRun(executionContext, true, askNextAction);
+ ? await initFirstRun(executionContext)
+ : await initRegularRun(executionContext);
}
diff --git a/src/commands/init/select/select-edit-or-add-provider.ts b/src/commands/init/select/select-edit-or-add-provider.ts
index ad666e5..bc359e7 100644
--- a/src/commands/init/select/select-edit-or-add-provider.ts
+++ b/src/commands/init/select/select-edit-or-add-provider.ts
@@ -21,19 +21,19 @@ export async function selectEditOrAddProvider(
// Add the current provider, which might be the root.
const currentChoice: ProviderChoice = {
name: isRoot
- ? "Update Provider"
- : `Update ${currentProvider.name} (current)`,
+ ? "Configure Provider"
+ : `Configure ${currentProvider.name} (current)`,
value: isRoot ? "update_root" : `update_${currentProvider.name}`,
- description: `Update configuration for ${isRoot ? "current provider" : currentProvider.name}`,
+ description: `Configure settings for ${isRoot ? "current provider" : currentProvider.name}`,
};
// Then the other providers.
const nextChoices = [
...allProviders
.filter((p) => p !== currentProvider)
.map((p) => ({
- name: `Update ${p.name}`,
+ name: `Configure ${p.name}`,
value: `update_${p.name}`,
- description: `Update configuration for ${p.name}`,
+ description: `Configure settings for ${p.name}`,
})),
];
const addChoice: ProviderChoice = {
@@ -45,7 +45,7 @@ export async function selectEditOrAddProvider(
const choices = [currentChoice, ...nextChoices, new Separator(), addChoice];
const answer = await select({
- message: "Update / Add Provider:",
+ message: "Configure / Add Provider:",
choices,
});
From 2471b63fde611d32ae9e0ec07382f62bbc620bd0 Mon Sep 17 00:00:00 2001
From: Dave Kerr
Date: Tue, 20 May 2025 08:23:54 +0100
Subject: [PATCH 03/12] feat(docs): langfuse integration (#96)
* feat(docs): ollama configuration guide
* feat(docs): langfuse integration
---
README.md | 9 +++-
docs/configuration.md | 2 +
docs/images/integrations-langfuse.png | Bin 0 -> 1758726 bytes
docs/integrations.md | 57 ++++++++++++++++++++++++++
docs/providers/msty.md | 4 +-
5 files changed, 70 insertions(+), 2 deletions(-)
create mode 100644 docs/images/integrations-langfuse.png
create mode 100644 docs/integrations.md
diff --git a/README.md b/README.md
index d48fa93..1915469 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
🧠terminal-ai
Effortless AI in the shell. Maintain your flow and be more effective.
- Supports OpenAI, Gemini, Claude, Ollama, MSTY and many more
+ Supports OpenAI, Gemini, Claude, Ollama, MSTY and many more.
@@ -12,6 +12,7 @@
Commands |
Configuration |
API Key |
+ Integrations |
Documentation |
@@ -333,10 +334,16 @@ export AI_MODEL="gpt-3.5-turbo" # Optional.
To configure multiple providers or advanced options, check the [Configuration Documentation](./docs/configuration.md).
+## Integrations
+
+Integration is available out-of-the-box for [Langfuse](https://langfuse.com/). See the [Integrations Guide](./docs/integrations.md) for details.
+
## Documentation
- [Configuration](./docs/configuration.md)
- [Developer Guide](./docs/developer-guide.md)
+- [Integrations Guide](./docs/integrations.md)
+- [Providers: Setting Up Ollama](./docs/providers/ollama.md)
- [Experimental Features](./docs/experimental-features.md)
- [Providers: Setting Up Ollama](./docs/providers/ollama.md)
- [Providers: Setting Up MSTY](./docs/providers/msty.md)
diff --git a/docs/configuration.md b/docs/configuration.md
index 166d63e..d72e3c6 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -226,3 +226,5 @@ providers:
model: gemma3:1b
apiKey: 'notused'
```
+
+Additional configuration options can be set for [Integrations](./integrations.md).
\ No newline at end of file
diff --git a/docs/images/integrations-langfuse.png b/docs/images/integrations-langfuse.png
new file mode 100644
index 0000000000000000000000000000000000000000..8abc8cc5c5464ca393e47fe007b4d7e4d0950d17
GIT binary patch
literal 1758726
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%0Amq&!{ELXKsCCS5c=jFG6!74
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