diff --git a/exo/tinychat/index.html b/exo/tinychat/index.html
index b7025a34..65451068 100644
--- a/exo/tinychat/index.html
+++ b/exo/tinychat/index.html
@@ -43,6 +43,12 @@
Models
+
+
+
diff --git a/exo/tinychat/index.js b/exo/tinychat/index.js
index c3887667..5b39e64a 100644
--- a/exo/tinychat/index.js
+++ b/exo/tinychat/index.js
@@ -39,6 +39,9 @@ document.addEventListener("alpine:init", () => {
// Add models state alongside existing state
models: {},
+ // Show only models available locally
+ showDownloadedOnly: false,
+
topology: null,
topologyInterval: null,
@@ -686,7 +689,11 @@ document.addEventListener("alpine:init", () => {
// Update the existing groupModelsByPrefix method to include counts
groupModelsByPrefix(models) {
const groups = {};
- Object.entries(models).forEach(([key, model]) => {
+ const filteredModels = this.showDownloadedOnly ?
+ Object.fromEntries(Object.entries(models).filter(([, model]) => model.downloaded)) :
+ models;
+
+ Object.entries(filteredModels).forEach(([key, model]) => {
const parts = key.split('-');
const mainPrefix = parts[0].toUpperCase();