SmartTools Registry - Centralized Tool Discovery and Distribution #1

Closed
opened 2025-12-30 17:45:51 +00:00 by rob · 2 comments
Owner

Overview

Create a centralized registry system for SmartTools that enables:

  1. Tool Discovery - Browsable UI with categories and intelligent search
  2. Tool Publishing - Users can publish tools publicly to the registry
  3. AI-Powered Curation - Automatic duplicate detection, merge suggestions, and classification
  4. Dependency Resolution - Projects declare required tools, SmartTools auto-fetches them

Motivation

As more projects use SmartTools (Ramble, Orchestrated Discussions, CascadingDev), tool definitions are duplicated across projects. A central registry would:

  • Allow projects to ship lean (just declare dependencies)
  • Enable tool reuse across community
  • Provide quality control through AI deduplication
  • Make discovering useful tools easy

Proposed Features

Registry Service

  • REST API for publishing, searching, fetching tools
  • AI analyzer that examines new submissions for:
    • Duplicate/similar existing tools
    • Auto-categorization based on functionality
    • Variation vs. new tool classification
  • Web UI for browsing categories and searching

CLI Commands

# Browse registry in TUI
smarttools registry browse

# Intelligent search
smarttools registry search "summarize text"

# Publish a tool
smarttools registry publish <tool-name>

# Install from registry
smarttools registry install <tool-name>

Project Integration

# smarttools.yaml in project root
name: my-project
requires:
  - summarize
  - translate
  - json-extract
# Auto-fetch dependencies
cd my-project && smarttools install

Resolution Order

  1. ./.smarttools/ (project-local)
  2. ~/.smarttools/ (user global)
  3. Registry (auto-download if missing)

Architecture

┌─────────────────────────────────────────────────┐
│              SmartTools Registry                │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────┐ │
│  │ Tool Store  │  │ AI Analyzer │  │ Search  │ │
│  │ (Gitea/S3)  │  │ (classify,  │  │ Index   │ │
│  │             │  │  dedupe)    │  │         │ │
│  └─────────────┘  └─────────────┘  └─────────┘ │
│                      REST API                   │
└─────────────────────────────────────────────────┘

Bootstrap Approach

  1. Start with Gitea repo as registry (tools as directories)
  2. smarttools publish = PR to registry repo
  3. smarttools install = git sparse-checkout
  4. AI analysis runs as CI hook on PRs
  5. Build web UI and smarter features over time

Considerations

Challenge Mitigation
Security Sandboxing, review for new publishers, reputation system
Versioning Semantic versions, lock files
Hosting Start on Gitea, scale later
Abuse Require account, rate limits, AI spam detection
## Overview Create a centralized registry system for SmartTools that enables: 1. **Tool Discovery** - Browsable UI with categories and intelligent search 2. **Tool Publishing** - Users can publish tools publicly to the registry 3. **AI-Powered Curation** - Automatic duplicate detection, merge suggestions, and classification 4. **Dependency Resolution** - Projects declare required tools, SmartTools auto-fetches them ## Motivation As more projects use SmartTools (Ramble, Orchestrated Discussions, CascadingDev), tool definitions are duplicated across projects. A central registry would: - Allow projects to ship lean (just declare dependencies) - Enable tool reuse across community - Provide quality control through AI deduplication - Make discovering useful tools easy ## Proposed Features ### Registry Service - REST API for publishing, searching, fetching tools - AI analyzer that examines new submissions for: - Duplicate/similar existing tools - Auto-categorization based on functionality - Variation vs. new tool classification - Web UI for browsing categories and searching ### CLI Commands ```bash # Browse registry in TUI smarttools registry browse # Intelligent search smarttools registry search "summarize text" # Publish a tool smarttools registry publish <tool-name> # Install from registry smarttools registry install <tool-name> ``` ### Project Integration ```yaml # smarttools.yaml in project root name: my-project requires: - summarize - translate - json-extract ``` ```bash # Auto-fetch dependencies cd my-project && smarttools install ``` ### Resolution Order 1. `./.smarttools/` (project-local) 2. `~/.smarttools/` (user global) 3. Registry (auto-download if missing) ## Architecture ``` ┌─────────────────────────────────────────────────┐ │ SmartTools Registry │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │ │ │ Tool Store │ │ AI Analyzer │ │ Search │ │ │ │ (Gitea/S3) │ │ (classify, │ │ Index │ │ │ │ │ │ dedupe) │ │ │ │ │ └─────────────┘ └─────────────┘ └─────────┘ │ │ REST API │ └─────────────────────────────────────────────────┘ ``` ## Bootstrap Approach 1. Start with Gitea repo as registry (tools as directories) 2. `smarttools publish` = PR to registry repo 3. `smarttools install` = git sparse-checkout 4. AI analysis runs as CI hook on PRs 5. Build web UI and smarter features over time ## Considerations | Challenge | Mitigation | |-----------|------------| | Security | Sandboxing, review for new publishers, reputation system | | Versioning | Semantic versions, lock files | | Hosting | Start on Gitea, scale later | | Abuse | Require account, rate limits, AI spam detection |
rob added the
enhancement
label 2025-12-30 17:45:51 +00:00
rob added this to the SmartTools Registry v1.0 milestone 2025-12-30 17:54:51 +00:00
rob added this to the SmartTools Registry project 2025-12-30 17:58:41 +00:00
Author
Owner

Progress Update - Phase 7 Complete

The SmartTools Registry server is now deployed and running at http://192.168.0.162:5050/

Completed

  • REST API (all endpoints working)
  • Tool storage backend (SQLite)
  • Web UI for browsing tools
  • User authentication (register/login)
  • Publisher management
  • Tool submission workflow
  • Semantic versioning support

Closed Issues

  • #2 Design smarttools.yaml manifest format
  • #11 Design and implement Registry REST API
  • #12 Implement tool storage backend
  • #16 Create web UI for registry browsing

Remaining Work

  • CLI commands (#6-10)
  • AI-powered features (#13-15)
  • Bootstrap from Gitea (#17)
  • Error pages and polish
## Progress Update - Phase 7 Complete The SmartTools Registry server is now deployed and running at http://192.168.0.162:5050/ ### Completed - REST API (all endpoints working) - Tool storage backend (SQLite) - Web UI for browsing tools - User authentication (register/login) - Publisher management - Tool submission workflow - Semantic versioning support ### Closed Issues - #2 Design smarttools.yaml manifest format - #11 Design and implement Registry REST API - #12 Implement tool storage backend - #16 Create web UI for registry browsing ### Remaining Work - CLI commands (#6-10) - AI-powered features (#13-15) - Bootstrap from Gitea (#17) - Error pages and polish
Author
Owner

Phase Completion Status (Dec 31, 2025)

All major phases are now complete:

Phase 1: Foundation - Manifest format, tool resolution
Phase 2: Core Backend - Flask API, SQLite DB, FTS5 search
Phase 3: CLI Commands - registry search/install/publish/browse/info/update
Phase 4: Publishing - Token auth, PR creation via Gitea
Phase 5: Project Dependencies - smarttools.yaml, install, add commands
Phase 6: Smart Features - FTS5 search, auto-categorization, similarity detection
Phase 7: Full Web UI - Landing page, tools browser, dashboard, auth
🔄 Phase 8: Polish & Scale - Rate limiting done, monitoring/alerting pending

Deployed

Remaining Work

  • Phase 8: Monitoring/alerting, performance optimization
  • Real Gitea repo for SmartTools-Registry (currently using local DB)
## Phase Completion Status (Dec 31, 2025) All major phases are now complete: ✅ **Phase 1: Foundation** - Manifest format, tool resolution ✅ **Phase 2: Core Backend** - Flask API, SQLite DB, FTS5 search ✅ **Phase 3: CLI Commands** - registry search/install/publish/browse/info/update ✅ **Phase 4: Publishing** - Token auth, PR creation via Gitea ✅ **Phase 5: Project Dependencies** - smarttools.yaml, install, add commands ✅ **Phase 6: Smart Features** - FTS5 search, auto-categorization, similarity detection ✅ **Phase 7: Full Web UI** - Landing page, tools browser, dashboard, auth 🔄 **Phase 8: Polish & Scale** - Rate limiting done, monitoring/alerting pending ### Deployed - Web UI running at http://192.168.0.162:5050/ - PR #18 merged to main branch ### Remaining Work - Phase 8: Monitoring/alerting, performance optimization - Real Gitea repo for SmartTools-Registry (currently using local DB)
rob closed this issue 2026-01-01 02:54:00 +00:00
Sign in to join this conversation.
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: rob/smarttools#1
No description provided.