Skip to content
This repository was archived by the owner on Apr 3, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
246 commits
Select commit Hold shift + click to select a range
491b007
Merge pull request #1 from rust-ui/smooth_init_with_app_config
max-wells May 16, 2025
fa612fa
replaced all depedencies upon components.toml to app_config.toml
May 16, 2025
4b7287b
updated README.md with new smooth workflow
May 16, 2025
98a550f
Run `ui init` locally.
max-wells May 17, 2025
5c5efff
Merge pull request #3 from rust-ui/smooth_component_addition
max-wells May 17, 2025
9da1023
📦 0.1.7 (ui-cli)
max-wells May 17, 2025
5518bda
(refacto): Remove unused model.rs.
max-wells May 17, 2025
9b9ac9a
Update README.
max-wells May 17, 2025
08cd75b
(refacto) Rename `app_config` in `ui_config` to be more explicit.
max-wells May 17, 2025
3898b88
cargo run --bin ui init
max-wells May 17, 2025
aa92614
Finish matching all `ui_config` naming.
max-wells May 17, 2025
cf916b0
(refacto): Remove `FakeCargo`.
max-wells May 17, 2025
940ba04
(refacto): `init`: Remove unused functions.
max-wells May 17, 2025
e975ad6
(feat): `init`: Add `base_color` and `tailwind_config_file`.
max-wells May 17, 2025
934ff03
(feat): Use `anyhow` crate instead of ` Box<dyn Error>`.
max-wells May 17, 2025
239b898
📦 v0.1.8 (ui-cli)
max-wells May 17, 2025
4a7e774
Cargo.toml: Use minor version for `toml` crate.
max-wells May 17, 2025
8ccb353
(refacto): Remove `#[allow(unused)]`.
max-wells May 17, 2025
4294a92
(refacto): Remove unnecessary `lifetime parameter` from `Dependency `.
max-wells May 17, 2025
a192bb2
(refacto): `init`: Rename `Dependency` in `Crate` to avoid confusion …
max-wells May 17, 2025
5087832
registration of components module
May 20, 2025
18aa185
Remove comments.
max-wells May 20, 2025
6bb2672
.gitignore: Add .DS_Store.
max-wells May 20, 2025
1e17ad2
_add/components.rs: Code cosmetics.
max-wells May 20, 2025
cc12631
Merge pull request #9 from rust-ui/add_mod_components
max-wells May 20, 2025
083a8bd
(refacto): Remove unused components.json.
max-wells May 17, 2025
8afc6b8
(refacto): Cargo.toml: Sort by alphabetic order.
max-wells May 17, 2025
94a9626
(feat): Enforce `clippy` globally.
max-wells May 20, 2025
2390834
(refacto): Fix some `clippy` issues.
max-wells May 20, 2025
8abe916
📦 v0.1.9 (ui-cli)
max-wells May 20, 2025
0a796e9
Update README.
max-wells May 20, 2025
01a6d47
removed unwrap
May 20, 2025
a2d6412
Merge pull request #12 from br8bit/remove-unwrap
max-wells May 22, 2025
445ce0c
fix: replace error with log message and continue
May 22, 2025
4ebfd61
Merge pull request #14 from br8bit/adding-incorrect-component-panic
max-wells May 22, 2025
004f371
Remove clippy warnings
max-wells May 22, 2025
882889c
refacto. Remove #[allow(dead_code)]
max-wells May 22, 2025
a9157db
📦 v1.0.10 (ui-cli)
max-wells May 22, 2025
3c697c3
v0.1.11
max-wells May 26, 2025
08442b0
small change.
max-wells Jun 11, 2025
3757799
Cargo.toml: Rustify.
max-wells Jun 25, 2025
b6964c1
v0.1.12 (ui-cli)
max-wells Jun 25, 2025
4608431
template.rs: Add cursor-pointer to Tailwind template.
max-wells Jun 25, 2025
789f1fd
v0.1.14 (ui-cli)
max-wells Jun 25, 2025
c40df3a
Add command_starters (Trunk for the moment).
max-wells Jun 29, 2025
5a44266
.gitignore: Add new entries.
max-wells Jun 29, 2025
0f09c33
Remove code generated by init command
max-wells Jun 29, 2025
79f65e3
v0.2.0 (ui-cli) <-- starters
max-wells Jun 29, 2025
b861ff2
Update README.md
max-wells Jul 2, 2025
7809ba2
Update LICENSE
max-wells Jul 2, 2025
91a086e
Update README.md
max-wells Jul 2, 2025
0fb7295
v 0.2.1 (ui-cli).
max-wells Jul 2, 2025
58ca469
Track Cargo.lock
max-wells Jul 2, 2025
a1fce78
Remove unused constants.
max-wells Jul 2, 2025
4572ba0
feat: Add new starters (leptos-ssr, leptos-ssr-workspace)
max-wells Jul 5, 2025
724a631
refacto: Add helper function to clone_starter_template
max-wells Jul 5, 2025
cfdcf16
v0.2.2 (ui-cli)
max-wells Jul 5, 2025
6996d43
Enforce some clippy rules.
max-wells Jul 5, 2025
657caba
.env: Remove trailing spaces.
max-wells Jul 5, 2025
76641da
init Claude and create REPORT.md
max-wells Jul 12, 2025
f7b8927
Enforce clippy::expect_used.
max-wells Jul 12, 2025
d656897
Use std::path::Path instead of format
max-wells Jul 12, 2025
58a014d
feat: Add TaskSpinner
max-wells Jul 12, 2025
1b404d4
feat: Implement CliError.
max-wells Jul 12, 2025
25a6a16
Add REPORT_INIT.md
max-wells Jul 12, 2025
bb28bff
init: Batch Package Installation
max-wells Jul 12, 2025
1cb79fa
cargo clippy --fix
max-wells Jul 12, 2025
52e46e5
Move CliError in shared
max-wells Jul 12, 2025
94ba88b
v0.2.3 (ui-cli)
max-wells Jul 12, 2025
b2f60ca
impl FileName to be consistent with other constants
max-wells Jul 12, 2025
5970ba2
remove constant for "."
max-wells Jul 12, 2025
3df545b
task_spinner: remove unused functions
max-wells Jul 12, 2025
81054b2
CliError: Use &str
max-wells Jul 12, 2025
74817a9
rename error.rs in cli_error.rs
max-wells Jul 12, 2025
ebc6429
CliResult instead of Result
max-wells Jul 12, 2025
9599479
cli_error: remove unused code
max-wells Jul 12, 2025
6adf6cd
cli_error: Encapsulate str parameters
max-wells Jul 12, 2025
81b044f
Add TODOS_CLAUDE.md
max-wells Jul 12, 2025
4b15f9d
Add CLAUDE_SHORTCUTS.md
max-wells Jul 12, 2025
e3363da
Clean gitignore
max-wells Jul 12, 2025
45b8fa3
remove file.
max-wells Jul 13, 2025
d5f285a
typos -w
max-wells Jul 15, 2025
4a62dba
Simplilfy the commands constants.
max-wells Jul 18, 2025
be4320e
🤖 Update constants and add Claude configuration
max-wells Jul 18, 2025
9237b51
🤖 Update REPORT_INIT.md - remove completed items
max-wells Jul 18, 2025
dab6526
🤖 refactor: Make Crate features field optional
max-wells Jul 31, 2025
dd53ad3
🤖 feat: Auto-select Default style in init command
max-wells Jul 31, 2025
9dde0e3
Remove unused reports.
max-wells Jul 31, 2025
f6be774
Add _report command.
max-wells Jul 31, 2025
209bc53
🤖 refactor: Add generic collection helper to reduce code duplication
max-wells Jul 31, 2025
9fe59d1
🤖 refactor: Convert Dependencies struct to module-level functions
max-wells Jul 31, 2025
002e0b8
🤖 refactor: Remove unnecessary file operations from add_cargo_dep_to_…
max-wells Jul 31, 2025
586e7cd
🤖 feat: Add resilient component processing with graceful error handling
max-wells Jul 31, 2025
00e7e6e
🤖 refactor: Apply single responsibility principle to dependency resol…
max-wells Jul 31, 2025
ca34311
🤖 refactor: Move template constants to command_init module
max-wells Sep 6, 2025
9a9ad14
cargo clippy --fix
max-wells Sep 6, 2025
e5bf660
🤖 refactor: Remove unused code to fix clippy warnings
max-wells Sep 6, 2025
129a913
🤖 chore: Update dependencies to latest versions
max-wells Sep 6, 2025
2308c68
remove unused files and functions.
max-wells Sep 6, 2025
30b7d06
Fetch .md files instead of .json files.
max-wells Sep 6, 2025
996c282
📦 ui-cli: v0.2.4
max-wells Sep 6, 2025
4ab3240
🤖 feat: Reduce reqwest feature dependencies to minimize binary size
max-wells Sep 6, 2025
59b38bd
🤖 refactor: Minimize dependency features to reduce binary size
max-wells Sep 6, 2025
21f5fdc
remove unused file.
max-wells Sep 8, 2025
922b92f
🤖 feat: Add automatic package manager detection with npm fallback
max-wells Sep 8, 2025
cd55e7a
🤖 refactor: Add InstallType enum for extensible dependency management
max-wells Sep 8, 2025
ca005d4
🤖 refactor: Simplify install API by removing unnecessary struct and w…
max-wells Sep 8, 2025
44f09e2
🤖 refactor: Move package manager detection to impl block for better o…
max-wells Sep 8, 2025
2ce2a10
cargo fmt
max-wells Sep 8, 2025
8401894
🤖 refactor: Simplify StarterTemplate enum using strum derives
max-wells Sep 8, 2025
3410ca8
_add: Use the new TREE structure.
max-wells Sep 8, 2025
0346b4d
🤖 refactor: Replace complex dependency resolution with simple tree-ba…
max-wells Sep 8, 2025
0583507
remove unused comments.
max-wells Sep 8, 2025
77a018c
v.0.2.5
max-wells Sep 8, 2025
6e759c8
🤖 refactor: Replace constants module with local const declarations
max-wells Sep 8, 2025
b933d36
🤖 refactor: Consolidate HTTP functionality in RustUIClient
max-wells Sep 8, 2025
83b15a6
🤖 refactor: Extract markdown utilities into separate module
max-wells Sep 8, 2025
c929b13
add a todo.
max-wells Sep 8, 2025
05204fb
remove unused files.
max-wells Sep 8, 2025
c21c4ec
Untrack src/components/*
max-wells Sep 8, 2025
1aee5ac
v.0.2.6
max-wells Sep 8, 2025
1a1906e
remove unused crate.
max-wells Sep 8, 2025
036fd28
🤖 fix: Skip non-existent components instead of failing in add command.
max-wells Sep 8, 2025
0f6523a
🤖 fix: Skip non-existent components instead of failing in add command.
max-wells Sep 8, 2025
e8424d4
🤖 chore: Add package metadata to Cargo.toml
max-wells Sep 8, 2025
7d50d06
v.0.2.7
max-wells Sep 8, 2025
6e2e2d4
🤖 refactor: Consolidate shared functions and clean up module structure
max-wells Sep 8, 2025
c167b83
🤖 feat: Add workspace detection to UiConfig for better import handling
max-wells Sep 8, 2025
1aa5870
🤖 refactor: Remove unused tailwind_config_file from UiConfig
max-wells Sep 8, 2025
e42cf2b
🤖 feat: Add Leptos dependency validation to init command
max-wells Sep 8, 2025
80845c3
_init/crates: Add a todo.
max-wells Sep 8, 2025
79ffd92
🤖 refactor: Rename add_cargo_dep_to_toml to process_cargo_deps and ad…
max-wells Sep 8, 2025
b6a1aed
🤖 refactor: Replace manual TOML parsing with cargo_toml crate for dep…
max-wells Sep 8, 2025
54de49e
cargo fmt
max-wells Sep 8, 2025
82d9a47
🤖 refactor: Leverage cargo_toml crate throughout workspace_utils for …
max-wells Sep 8, 2025
dfe69da
🤖 refactor: Integrate cargo_toml native error types and simplify erro…
max-wells Sep 8, 2025
8bbfe83
code cleanup.
max-wells Sep 8, 2025
e9b91e6
v0.2.8
max-wells Sep 8, 2025
5d66974
🤖 feat: Add ComponentType enum for proper component categorization
max-wells Sep 8, 2025
4001af2
Fix typo.
max-wells Sep 8, 2025
fc81cc4
v0.2.9
max-wells Sep 8, 2025
7b4810e
Code cosmetics
max-wells Sep 24, 2025
a1d9e88
Cargo.lock update
max-wells Oct 12, 2025
41be425
🤖 refactor: Remove explicit @config directive from Tailwind CSS template
max-wells Oct 12, 2025
c799379
cargo clippy --fix
max-wells Oct 12, 2025
cea0947
🤖 fix: Preserve existing leptos dependency during init
max-wells Oct 12, 2025
5557cdb
🤖 chore: Expand gitignore to exclude entire style directory
max-wells Oct 12, 2025
4ba140f
🤖 chore: Bump version to 0.2.10
max-wells Oct 12, 2025
e525ec0
🤖 fix: Add helpful error message when ui_config.toml is missing
max-wells Nov 17, 2025
4259909
remove unused file
max-wells Nov 17, 2025
63dee79
🤖 refactor: Reorder dependency attributes for consistency
max-wells Nov 17, 2025
f97bd5b
Unpin tempfile
max-wells Nov 17, 2025
ecab9bc
🤖 chore: Remove redundant default-features = false declarations
max-wells Nov 17, 2025
aa3805f
🤖 chore: Remove unused anyhow dependency
max-wells Nov 17, 2025
cd0c993
remove unused file
max-wells Nov 17, 2025
5416ec2
🤖 test: Add integration tests for registry HTTP calls
max-wells Nov 17, 2025
7614b4b
📦 0.2.11
max-wells Nov 17, 2025
b10f7a4
Cargo.lock update
max-wells Jan 4, 2026
106b080
_init: Add IosTauri (start-ios-tauri)
max-wells Jan 4, 2026
731277a
📦 v0.2.12
max-wells Jan 4, 2026
c116222
_starters: Add ios-tauri-fullstack Starter.
max-wells Jan 5, 2026
7ef636a
📦 v 0.2.13
max-wells Jan 5, 2026
336a769
Rename in start-tauri(-fullstack)
max-wells Jan 6, 2026
b3c9561
📦 v0.2.14
max-wells Jan 6, 2026
13e1b03
🤖 feat: Add ratatui TUI for interactive component selection.
max-wells Jan 6, 2026
b2ae7fd
🤖 feat: Add component installation from TUI selection.
max-wells Jan 6, 2026
1390f13
🤖 refactor: Improve workspace detection with dynamic analysis.
max-wells Jan 6, 2026
b0e86c3
Add start-leptos-ssr-workspace/ to gitignore
max-wells Jan 6, 2026
e07c0ae
📦 v0.3.0: Add Ratatui
max-wells Jan 6, 2026
9311cd7
cargo fmt
max-wells Jan 6, 2026
b5206cb
🤖 fix: Add --package flag to cargo add in workspaces.
max-wells Jan 6, 2026
a5a44e0
v0.3.1
max-wells Jan 6, 2026
6674b5a
🤖 feat: Add workspace-aware dependency management with toml_edit.
max-wells Jan 6, 2026
803b933
v0.3.2
max-wells Jan 6, 2026
d9bc225
🤖 fix: Use dotted key format for workspace dependencies.
max-wells Jan 6, 2026
f2ee811
🤖 feat: Improve init command with file merge and confirmation.
max-wells Jan 6, 2026
4b1140c
v0.3.3
max-wells Jan 6, 2026
43af32b
🤖 feat: Use toml_edit for all init crates in workspace.
max-wells Jan 6, 2026
7e61bee
🤖 refactor: Simplify config.rs with idiomatic patterns.
max-wells Jan 6, 2026
8053ea5
🤖 fix: Resolve clippy errors and warnings.
max-wells Jan 7, 2026
103e2ea
🤖 feat: Add Demos tab to separate demo components.
max-wells Jan 7, 2026
d435ceb
🤖 feat: Replace popup with confirmation dialog.
max-wells Jan 7, 2026
3e3fc35
🤖 feat: Show installed components in TUI list.
max-wells Jan 7, 2026
c02a96f
🤖 feat: Show installed and selected counts in list title.
max-wells Jan 7, 2026
557db2e
🤖 feat: Add select all with 'a' key shortcut.
max-wells Jan 7, 2026
da53d5e
🤖 feat: Show dependencies in detail panel.
max-wells Jan 7, 2026
583ac70
🤖 refactor: Remove select all 'a' key feature.
max-wells Jan 7, 2026
5cc0a28
🤖 feat: Add footer shortcuts and Ctrl+letter jump.
max-wells Jan 7, 2026
ef1aa41
🤖 test: Add unit tests for TUI logic.
max-wells Jan 7, 2026
039833e
📦 v0.3.4
max-wells Jan 7, 2026
6e2f938
🤖 feat: Add JS file dependency support to add command.
max-wells Jan 7, 2026
a018c28
📦 v0.3.5
max-wells Jan 7, 2026
fc2044c
Cargo.lock update
max-wells Jan 7, 2026
79d6e35
🤖 chore: Upgrade ratatui to 0.30.
max-wells Jan 7, 2026
665a5fe
🤖 refactor: Remove deprecated starter templates
max-wells Jan 14, 2026
2ce011e
🤖 chore: Bump version to 0.3.6
max-wells Jan 14, 2026
f4c8984
🤖 refactor(cli): Read tailwind-input-file from Cargo.toml metadata
max-wells Feb 2, 2026
b773601
🤖 refactor(cli): DRY Cargo.toml parsing with load_cargo_manifest
max-wells Feb 2, 2026
8aa7397
🤖 test(cli): Add edge case tests for tailwind and workspace deps
max-wells Feb 2, 2026
7ec4cc2
🤖 chore: Bump version to 0.3.7
max-wells Feb 2, 2026
8d09eb9
🤖 chore: Update Cargo.lock
max-wells Feb 2, 2026
8c29a46
🤖 docs: add exhaustive shadcn vs rust-ui CLI feature comparison
max-wells Mar 7, 2026
a3de458
🤖 feat(add): overwrite prompt on existing components + colored summary
max-wells Mar 7, 2026
4ef3584
🤖 chore: add _TMP/ to gitignore and document it in CLAUDE.md for manu…
max-wells Mar 7, 2026
41a14f9
🤖 feat(add): show dep already installed in summary instead of silent …
max-wells Mar 7, 2026
3aed760
🤖 feat: overwrite prompt on add + colored summary + ui info command
max-wells Mar 7, 2026
5e02e3f
🤖 feat: add --dry-run flag on add + ui docs command
max-wells Mar 7, 2026
3aa1405
🤖 docs: add CHANGELOG.md
max-wells Mar 7, 2026
8b0f75a
🤖 feat: add ui list command + info --json flag
max-wells Mar 7, 2026
83c883e
🤖 feat: add ui search command + ui list --json flag
max-wells Mar 7, 2026
e492ca6
🤖 feat: add ui update command
max-wells Mar 7, 2026
7ff7554
🤖 chore: bump version to 0.3.8 and add patch-bump rule to CLAUDE.md
max-wells Mar 7, 2026
3663266
feat: add ui diff command
max-wells Mar 7, 2026
a369b99
🤖 chore: mark build and add --all as not planned in FEATURES.md
max-wells Mar 7, 2026
fa20c40
feat: add ui view command
max-wells Mar 7, 2026
640f731
feat: add --path flag to ui add; add ui view command
max-wells Mar 7, 2026
fdb1e41
🤖 docs: update __FEATURES.md to reflect implemented commands
max-wells Mar 7, 2026
9ef46eb
🤖 feat: add --view and --diff flags to ui add command
max-wells Mar 7, 2026
3f1c0c0
🤖 refactor: extract diff_components and view_components helpers
max-wells Mar 7, 2026
5447425
🤖 test: add targeted tests for diff_components, view_components, and …
max-wells Mar 7, 2026
850aa41
🤖 test: add missing tests for markdown_utils and component_type
max-wells Mar 7, 2026
c8b2afd
🤖 test: add missing tests for user_input and components modules
max-wells Mar 7, 2026
36c820c
🤖 test: add missing tests for registry mod.rs writer and tree_parser …
max-wells Mar 7, 2026
75546bc
🤖 chore: add unit tests for dependencies, popup_area, and UiConfig
max-wells Mar 7, 2026
47fbb7a
docs: add MCP server feature research and implementation plan
max-wells Mar 7, 2026
7cec737
docs: update __FEATURES.md — remove stale entries, fix mcp status
max-wells Mar 7, 2026
30c5b92
refactor: remove dead user_input/fetch/styles-index chain
max-wells Mar 7, 2026
25a747d
cargo clippy --fix
max-wells Mar 7, 2026
93166e9
🤖 fix: resolve clippy indexing_slicing lints in command_diff
max-wells Mar 7, 2026
e32f238
🤖 refactor: replace hand-rolled LCS diff with similar crate
max-wells Mar 7, 2026
bec9780
🤖 feat: add MCP server with ui mcp and ui mcp init commands
max-wells Mar 7, 2026
d76a083
🤖 chore: bump version to 0.3.9 and update CHANGELOG
max-wells Mar 7, 2026
34a25a0
chore: update Cargo.lock
max-wells Mar 7, 2026
d070ead
docs: add CHANGELOG reference to README
max-wells Mar 7, 2026
e3d9f9b
docs: rewrite README with all commands
max-wells Mar 7, 2026
3932849
docs: add ui add flags to README
max-wells Mar 7, 2026
32ea649
fix: MCP server advertises tools capability (0.3.10)
max-wells Mar 7, 2026
7bcec72
🤖 feat: add deprecated warnings, init --yes/--force, update MCP status
max-wells Mar 7, 2026
cf00ef9
🤖 feat: init backup/restore, reinstall, and process_add_components
max-wells Mar 7, 2026
b55dcec
🤖 chore: add nextest config for faster test runs
max-wells Mar 7, 2026
523cd44
🤖 docs: update CLAUDE.md with nextest and correct project structure
max-wells Mar 7, 2026
9238361
🤖 feat(init): interactive base color + accent color picker
max-wells Mar 7, 2026
e97f1b2
🤖 chore: bump version to 0.3.11
max-wells Mar 7, 2026
1a1ae9e
🤖 fix: resolve all clippy warnings and errors
max-wells Mar 7, 2026
1a12077
🤖 chore: update Cargo.lock for version 0.3.11
max-wells Mar 7, 2026
2f1ca1a
fix(init): skip npm install if deps already present (fixes #5, #6)
prabhatrm23git Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[profile.default]
# Fail fast: stop after first test failure
fail-fast = false

# Mark tests slow after 5s, fail after 30s
slow-timeout = { period = "5s", terminate-after = 6 }

[[profile.default.overrides]]
# Network integration tests: allow retries and more time
filter = "test(test_fetch)"
retries = 2
slow-timeout = { period = "10s", terminate-after = 3 }
6 changes: 0 additions & 6 deletions .env

This file was deleted.

30 changes: 23 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,32 @@
# Generated by Cargo
# will have compiled files and executables
/target/
**/target/
pkg
Cargo.lock

# These are backup files generated by rustfmt
**/*.rs.bk

# node e2e test tools and outputs
node_modules/
test-results/
end2end/playwright-report/
playwright/.cache/
# Init & Add
/node_modules/
/pnpm-lock.yaml
style/
tailwind.config.js
ui_config.toml
package.json
src/components/ui/*
src/components/demos/*

**/target/

# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb

# Apple
**/.DS_Store
**/.Icon?
**/.Icon



start-leptos-ssr-workspace/
_TMP/
122 changes: 122 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# rust-ui CLI — Changelog

## Unreleased

---

## 0.3.11

### Added

- `ui init` — interactive base color picker (Neutral / Stone / Zinc / Mauve / Olive / Mist / Taupe) and accent color picker (Default / Amber / Blue / … / Yellow); selections are saved to `ui_config.toml` and the generated `tailwind.css` uses the exact OKLCH values; `--yes` / `--force` skips prompts and uses defaults
- `ui add` — deprecated component warnings: warns and exits when a deprecated component is requested, pointing to the replacement (e.g. `toast` → use `sonner`)
- `ui init --yes` / `-y` and `--force` / `-f` — skip confirmation prompts and force overwrite existing files without prompting
- `ui init --reinstall` — re-download and overwrite all already-installed components after init; prompts automatically when existing components are detected on a re-run
- `ui init` — backup/restore on failure: `ui_config.toml` is backed up before writing and automatically restored if the init process fails (RAII `FileBackup` guard)

---

## 0.3.10

### Fixed

- MCP server now correctly advertises the `tools` capability in the initialize response, so Claude Code and other clients properly discover and register tools on session start

---

## 0.3.9

### Added

- `ui mcp` — starts a stdio MCP server exposing rust-ui registry tools to AI editors (Claude Code, Cursor, VS Code, OpenCode)
- `ui mcp init --client <claude|cursor|vscode|opencode>` — writes the editor config file so your AI editor auto-connects to the MCP server on startup
- MCP tools available: `list_components`, `search_components`, `view_component`, `get_add_command`, `get_audit_checklist`
- `ui view <name>` — prints a component's source from the registry without installing it; supports `--json`
- `ui add --path <dir>` — override the output directory for components, bypassing `base_path_components` from `ui_config.toml`
- `ui diff` — shows a line-by-line diff of installed components vs the registry; supports a single component (`ui diff button`) or all installed components at once; supports `--json` for machine-readable output

---

## 0.3.8

### Added

- `ui update` — checks all installed components against the registry; reports `up to date`, `outdated`, or `not in registry` per component; suggests the exact `ui add <name> -y` command to fix each; supports `--json`
- `ui search <query>` — filters the registry by name (case-insensitive); supports `--json` for scripted output
- `ui list --json` — machine-readable JSON output for `ui list` (`{ total, categories: { ... } }`)
- `ui list` — lists all available components from the registry grouped by category (grep-friendly, one component per line)
- `ui info --json` — machine-readable JSON output for `ui info`, useful for scripting and AI tooling
- `ui docs` — opens `https://rust-ui.com` in the system default browser (cross-platform: `open` / `xdg-open` / `start`)
- `ui add --dry-run` / `-n` — resolves all dependencies and previews which files would be written, overwritten, or skipped without touching the filesystem; output is sorted for determinism

---

## 0.3.7

### Added

- `ui info` — prints project config (`ui_config.toml`), base color, base path, workspace detection, and all installed components with count
- `ui add --yes` / `-y` — skips the overwrite prompt and forces all files to be written
- Overwrite prompt on `add` — when a component file already exists, the user is asked before overwriting (requires a TTY; bypassed with `--yes`)
- Explicit summary after `add`:
- `✅ Added:` — newly written files
- `⏭ Skipped:` — existing files the user chose not to overwrite
- `📦 Dep already installed:` — auto-resolved dependency components already on disk (no silent skips)

### Changed

- Auto-resolved dependency components that are already installed no longer trigger the overwrite prompt; they are reported separately in the summary

---

## 0.3.6

### Added

- `ui add` reads tailwind input file path from `[package.metadata.leptos]` in `Cargo.toml`
- Workspace-aware Cargo dep injection: detects workspace root and uses `[workspace.dependencies]` when available

### Changed

- Removed deprecated starter templates
- Upgraded ratatui to 0.30

---

## 0.3.5

### Added

- JS file dependency support in `add`: downloads JS files to `public/` alongside Rust components

---

## 0.3.4

### Added

- Interactive TUI picker (ratatui) with tabs: Components, Hooks, Blocks, Icons, Demos, Settings
- Installed components highlighted in TUI list
- Dependency detail panel in TUI
- Footer keyboard shortcuts (`Ctrl+letter` to jump between tabs)
- Unit tests for TUI logic

---

## 0.1.5

### Added

- `ui starters` — choose and clone starter templates (Tauri, Tauri Fullstack)
- Registry-based component fetching (`add` reads from remote registry)
- Automatic `mod.rs` registration on `add`
- Automatic `pub mod components` registration in `lib.rs` / `main.rs`
- Cargo dependency injection on `add`

---

## 0.1.4 and earlier

- Initial `ui init` command: scaffolds `ui_config.toml`, installs Tailwind CSS config, wires Leptos dependencies
- Initial `ui add <components>` command: fetches components from registry by name with dependency resolution
- Workspace detection and multi-crate support
49 changes: 49 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Development Commands

### Building and Testing
```bash
# Run tests (preferred)
cargo nextest run

# Run tests (fallback if nextest not installed)
cargo test

# For manual end-to-end testing, use the _TMP/ directory (gitignored) as a throwaway project.

# Run with specific commands (examples from main.rs)
cargo run --bin ui init
cargo run --bin ui add button demo_button demo_button_variants demo_button_sizes
cargo run --bin ui add demo_use_floating_placement
cargo run --bin ui starters
```


### Project Structure
```
crates/ui-cli/
├── src/
│ ├── command_add/ # Component installation logic
│ ├── command_diff/ # ui diff command
│ ├── command_docs/ # ui docs command
│ ├── command_info/ # ui info command
│ ├── command_init/ # Project initialization
│ ├── command_list/ # ui list command
│ ├── command_mcp/ # ui mcp server + mcp init
│ ├── command_search/ # ui search command
│ ├── command_starters/ # Starter template cloning
│ ├── command_update/ # ui update command
│ ├── command_view/ # ui view command
│ └── shared/ # Shared utilities
└── Cargo.toml # Binary configuration
```

## Workflow Rules

- **CHANGELOG.md**: Update `CHANGELOG.md` every time a new feature, fix, or change is added. New work goes under `## Unreleased`. Keep entries concise and user-facing.
- **Version**: When bumping the crate version in `Cargo.toml`, move `## Unreleased` entries to the new version section in `CHANGELOG.md` at the same time.
- **DEFAULT**: Always bump the **minor** version only (e.g. `0.3.7` → `0.3.8`). Never bump major or minor segment (e.g. `0.4.0`) without explicitly asking the user first.

Loading