lamintra/ui

Install

Two commands. The first you run once per project, the second every time you want a component. Nothing is added to your Gradle build, because there is nothing to add.

Before you start

You need JDK 17 or later, which you already have if you are building Android or Kotlin Multiplatform. Nothing else: the CLI is a single jar with no dependencies of its own, and it is not a Gradle plugin, an npm package or a SDKMAN candidate.

Download lamintra-0.5.0.jar from the latest release (v0.5.0). It is the only thing you download.

1. Set the project up, once

$ java -jar lamintra-0.5.0.jar init

init reads your project off disk to work out where components should go. It does not evaluate Gradle, so it is fast and it cannot be broken by a build script it does not understand.

lamintra init

Detected from your project:
  Type         : Kotlin Multiplatform
  Source root  : composeApp/src/commonMain/kotlin
  Root package : com.yourorg.yourapp
  Components   : com.yourorg.yourapp.ui.components.*

Use these settings? [Y/n]

Accepting writes .lamintra/config.json, and that file is the entire footprint of the tool in your repository. If detection is wrong, or your layout is unusual, answering n asks you the same questions directly.

2. Add a component, whenever

$ java -jar lamintra-0.5.0.jar add button
$ java -jar lamintra-0.5.0.jar add button

Installed button with zero manual fixes needed.

Any of the 6 names on the components page works: button, card, text-field, list-row, switch, segmented.

What "with zero manual fixes" actually means

This is the part that is not marketing. A copy-pasted .tsx file runs wherever you drop it. A copy-pasted .kt file does not compile at all unless its package declaration matches its physical location on disk, which is a hard Kotlin compiler rule rather than a convention.

So a component published under com.lamintra.button is broken the moment it lands in your com.yourorg.yourapp tree. The CLI rewrites the package declaration, the internal imports, and the file path together, so the file compiles where it lands. That is the whole reason this is a tool and not a page of snippets.

The rewrite is boundary-safe: rewriting com.lamintra.button never touches a package that merely shares its prefix.

Where the code comes from

The CLI fetches from the public registry repository, pinned to the tag v0.5.2 rather than to main. A push to the registry cannot change what your add installs; only upgrading the CLI can.

The registry is public, so you can read exactly what a command will write before you run it.

Deleting Lamintra

Delete lamintra-0.5.0.jar and the .lamintra directory. That is the whole uninstall. The components stay, because they were only ever your files: they import compose.foundation and nothing else, so there is no artifact to remove from your build and nothing to unblock you.

This is the one claim the nearest alternative cannot make. It is also the reason there is no "upgrade" command: once a component is in your repository, it is yours to change, and a tool that rewrote your edits later would be taking that back.