A python CLI tool that helps developers to get and install useful AI resources
Project description
aidriven
aidriven is a Python library that helps developers discover and manage AI-oriented IDEs and install useful AI resources such as skills, agents, and specs.
Features
- IDE Discovery — detects locally installed AI-oriented IDEs (VS Code, Cursor, Kiro) across Windows, macOS, and Linux
- Multi-installation support — handles multiple variants and channels (e.g., VS Code Stable and Insiders) as separate entries
- Graceful degradation — partial or corrupted installations are returned with a reduced confidence level rather than silently dropped
- Extensible providers — register custom IDE providers without touching built-in detection logic
- Zero dependencies — stdlib only (
pathlib,shutil,platform,subprocess,dataclasses,enum)
Installation
Requires Python 3.11+.
pip install aidriven
Or with uv:
uv add aidriven
Usage
Discover installed IDEs
from aidriven.discovery import discover_ides
result = discover_ides()
for ide in result.detected_ides:
print(ide.identifier, ide.display_name, ide.version, ide.confidence)
Each DetectedIDE entry contains:
| Field | Type | Description |
|---|---|---|
identifier |
str |
Normalized IDE key (e.g. vscode, cursor, kiro) |
display_name |
str |
Human-readable name |
install_path |
Path |
Path to the installation |
version |
str | None |
Resolved version string, or None if unavailable |
channel |
str |
Variant channel (e.g. stable, insiders) |
confidence |
ConfidenceLevel |
HIGH, MEDIUM, or LOW |
detected_platform |
str |
Platform the detection ran on |
Register a custom provider
from aidriven.discovery import discover_ides, ProviderRegistry
registry = ProviderRegistry()
registry.register(MyCustomIDEProvider())
result = discover_ides(registry=registry)
Development
This project uses uv for dependency management.
# Install dependencies (including dev extras)
uv sync
# Run tests with coverage
uv run pytest
# Lint
uv run ruff check .
# Format check
uv run ruff format --check .
# Type check
uv run mypy src/
# Serve docs locally
uv run mkdocs serve
Contributing
- Fork the repository and create a feature branch.
- Install dev dependencies and set up pre-commit hooks:
uv sync
uv tool install pre-commit
pre-commit install
- Make your changes, add tests, and ensure all checks pass:
pre-commit run --all-files
uv run pytest
- Open a pull request against
main.
Bug reports and feature requests are welcome via GitHub Issues.
License
MIT — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aidriven-0.2.0.tar.gz.
File metadata
- Download URL: aidriven-0.2.0.tar.gz
- Upload date:
- Size: 342.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd7f74a28aedfca10fd49738f6dbcf5eb43cb046974fb0c161e1f5420fb13c48
|
|
| MD5 |
fdc915f5322bee3c4f530a636ecb037e
|
|
| BLAKE2b-256 |
70b29bd8da8431db9aa919c4d29cd1af6c30a8385b3ef051bd562915c4036182
|
Provenance
The following attestation bundles were made for aidriven-0.2.0.tar.gz:
Publisher:
publish.yml on ThiagoPanini/aidriven
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aidriven-0.2.0.tar.gz -
Subject digest:
dd7f74a28aedfca10fd49738f6dbcf5eb43cb046974fb0c161e1f5420fb13c48 - Sigstore transparency entry: 1262531530
- Sigstore integration time:
-
Permalink:
ThiagoPanini/aidriven@5258ac1d13e12cc9b9fefe6fa0d35986d2a601e2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ThiagoPanini
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5258ac1d13e12cc9b9fefe6fa0d35986d2a601e2 -
Trigger Event:
pull_request
-
Statement type:
File details
Details for the file aidriven-0.2.0-py3-none-any.whl.
File metadata
- Download URL: aidriven-0.2.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e35952774b465eae92215121d1e144708b3cec9a835d4170620e421ff31231b4
|
|
| MD5 |
45a22403f1072b50d0523d39b1d73405
|
|
| BLAKE2b-256 |
069336f5b4791d21646e0cfadd572a971d053d34a90d24e1c6666646e169b0d8
|
Provenance
The following attestation bundles were made for aidriven-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on ThiagoPanini/aidriven
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aidriven-0.2.0-py3-none-any.whl -
Subject digest:
e35952774b465eae92215121d1e144708b3cec9a835d4170620e421ff31231b4 - Sigstore transparency entry: 1262531577
- Sigstore integration time:
-
Permalink:
ThiagoPanini/aidriven@5258ac1d13e12cc9b9fefe6fa0d35986d2a601e2 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ThiagoPanini
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5258ac1d13e12cc9b9fefe6fa0d35986d2a601e2 -
Trigger Event:
pull_request
-
Statement type: