Skip to content

Commit 5dfd6e0

Browse files
committed
Update RELEASE_NOTES-v3.md
1 parent 7a9f712 commit 5dfd6e0

1 file changed

Lines changed: 66 additions & 3 deletions

File tree

RELEASE_NOTES-v3.md

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,14 @@ The switch to models.dev greatly expands our model selection to not more than 53
2222

2323
Please raise an issue to add support for any missing providers from [models.dev](https://models.dev) you would like to use.
2424

25+
### Up to Date Providers
26+
27+
If your providers.json is older than 1 day, it will be automatically updated when you run `llms`. You can also use the `--update-providers` command at anytime to update your local `providers.json` with the latest provider list from `models.dev`.
28+
29+
It filters and saves only the providers that are referenced in your `llms.json`. Any additional providers you want to use that are not included in `models.dev` can be added to your `~/.llms/providers-extra.json` which will be merged into your `providers.json` when updated.
30+
31+
This optimization keeps your local configuration file lightweight by only containing the providers you actually use.
32+
2533
## New Model Selector UI
2634

2735
With over 530 models from 23 providers now available, discovering and selecting the right model required a complete overhaul from a simple Autocomplete. The Model Selector has been completely redesigned as a full-featured dialog offering:
@@ -146,7 +154,7 @@ The provider configuration is now closely aligned with the `models.dev` npm conf
146154
By standardizing on `models.dev` definitions, the project now shares a compatible configuration model with other AI tools like **OpenCode**. This includes the standardization of environment variables using the `"env"` property, ensuring simpler and more portable configuration across different tools.
147155

148156
## Extensions
149-
To keep the core lightweight while enabling limitless enhancements, we've introduced a flexible Extensions system. This allows you to add features, integrate with new services, and customize the UI without bloating the base application.
157+
To keep the core lightweight while enabling limitless enhancements, we've introduced a flexible Extensions system. This allows you to add features, register new provider implementations, extend, replace and customize the UI with your own custom features.
150158

151159
### Installation
152160
Extensions can be installed from GitHub or by creating a local folder:
@@ -157,7 +165,7 @@ Extensions can be installed from GitHub or by creating a local folder:
157165
Extensions are Python modules that plug into the server lifecycle using special hooks defined in their `__init__.py`:
158166

159167
- **`__parser__(parser)`**: Add custom CLI arguments.
160-
- **`__install__(ctx)`**: Enhance the server instance (e.g., add routes, register filters). `ctx` gives you access to the `ExtensionContext`.
168+
- **`__install__(ctx)`**: Enhance the server instance (e.g., add routes, register providers, filters, etc). `ctx` gives you access to the `ExtensionContext`.
161169
- **`__run__(ctx)`**: Execute custom logic when running in CLI mode.
162170

163171
### How it Works (UI)
@@ -170,7 +178,7 @@ Extensions can also include a frontend component.
170178
// ui/index.mjs
171179
export default {
172180
install(ctx) {
173-
// Register components, add routes, etc.
181+
// Register or replace components, add routes, etc.
174182
ctx.components({ MyComponent })
175183
}
176184
}
@@ -215,6 +223,61 @@ Remove extension:
215223
llms --remove system_prompts
216224
```
217225

226+
## Tool Support
227+
228+
New in v3 is first-class support for Python function calling (Tools), allowing LLMs to interact with your local environment and custom logic.
229+
230+
### 1. Python Function Tools
231+
232+
Define tools using standard Python functions. The system automatically generates tool definitions from your function's signature, type hints, and docstrings.
233+
234+
```python
235+
def get_current_time(timezone: str = "UTC") -> str:
236+
"""Get current time in the specified timezone"""
237+
return f"The time is {datetime.now().strftime('%I:%M %p')} {timezone}"
238+
```
239+
240+
### 2. Registration
241+
Register your tools within an extension's `install` method. You can register simple functions or provide manual definitions for complex cases.
242+
243+
```python
244+
def install(ctx):
245+
# Automatic definition from function signature
246+
ctx.register_tool(get_current_time)
247+
```
248+
249+
### 3. UI Management
250+
- **One-Click Enable/Disable**: Use the new Tool Selector in the chat interface (top-right) to control which tools are available to the model.
251+
- **Dedicated Tools Page**: View all registered tools and their definitions at `/tools` or via the sidebar link.
252+
- **Granular Control**: Select "All", "None", or specific tools for each chat session.
253+
254+
## Available Tools
255+
256+
All available tools are maintained in GitHub [llmspy/repositories](https://github.com/orgs/llmspy/repositories), currently:
257+
258+
- `core_tools` - Core System Tools providing essential file operations, memory persistence, math expression evaluation, and code execution
259+
- `duckduckgo` - Add web search tool capabilities using Duck Duck Go
260+
- `system_prompts` - Enables and includes collection of awesome system prompts
261+
262+
```bash
263+
llms --add core_tools
264+
```
265+
266+
Installing an extension simply clones it into your `~/.llms/extensions` folder and installs any Python `requirements.txt` dependencies (if any). Inversely, you can remove an extension by deleting the folder from `~/.llms/extensions`.
267+
268+
You can also install 3rd Party extensions from GitHub using:
269+
270+
```bash
271+
llms --add <user>/<repo>
272+
```
273+
274+
Or by manually cloning it in your `~/.llms/extensions` folder:
275+
276+
```bash
277+
git clone https://github.com/<user>/<repo> ~/.llms/extensions/<repo>
278+
```
279+
280+
Feel free to submit pull requests to add new extensions to the [llmspy/repositories](https://github.com/orgs/llmspy/repositories) organization to make your extension easily discoverable to everyone.
218281

219282
## Optimized `--update`
220283
The `--update` command provides an optimal way to fetch the latest provider list from `models.dev` but saves only a subset to your local `providers.json`. It filters and saves only the providers that are referenced in your `llms.json`. This optimization keeps your local configuration file lightweight and focused on the providers you actually use.

0 commit comments

Comments
 (0)