Shamoo knowledge base

Documentation

Practical guides for installing, publishing, and operating the Shamoo ecosystem.

Quickstart

Shamoo CLI

shamoo login
shamoo search holograms
shamoo install holograms

Official npm

@shamoo:registry=https://shamoof.com/npm
//shamoof.com/npm/:_authToken=$SHAMOO_NPM_TOKEN

Maven / Gradle

maven {
 url = uri("https://shamoof.com/maven")
}

CLI publishing and tokens

Use the right credential for your account.

Every confirmed publisher can create tokens for a permanent personal workspace. Administrators use separate grants for Shamoo's reserved npm and Maven namespaces.

Regular publisher

Publish your workspace

npm login exchanges your email and password for a read-only shnpm_... token. To publish, create a PUBLISH token in the registry dashboard. Enter your account email when npm asks for a username.

npm login \
  --registry=https://shamoof.com/npm \
  --auth-type=legacy

npm whoami --registry=https://shamoof.com/npm

Personal tokens publish only @sh-<username>/* on npm and com.shamoof.user.<username>:* on Maven. They cannot publish to another user or a reserved Shamoo workspace.

Manage registry tokens
Administrator

Publish official registries

Create separate PUBLISH tokens in the npm and Maven administration pages. Tokens are shown once and remain tied to the administrator who created them.

  • npm tokens publish only @shamoo/* packages.
  • Maven tokens publish only com.shamoof:* artifacts.
  • Versions are immutable and Maven snapshots are rejected.

Publisher and administrator

Publish with npm

Create an npm PUBLISH token and use a new semantic version. Replace @sh-yourname with your personal scope; administrators publishing official packages use @shamoo. Keep the token as an environment-variable reference in .npmrc:

@shamoo:registry=https://shamoof.com/npm
@sh-yourname:registry=https://shamoof.com/npm
//shamoof.com/npm/:_authToken=${SHAMOO_NPM_TOKEN}
always-auth=true
read -rsp "Shamoo npm token: " SHAMOO_NPM_TOKEN && printf '\n'
export SHAMOO_NPM_TOKEN
npm publish --registry=https://shamoof.com/npm --access public
unset SHAMOO_NPM_TOKEN

Do not use the token returned by npm login for publication: login intentionally creates a read-only credential.

Publisher and administrator

Deploy with Maven

Create a Maven PUBLISH token. A publisher uses group com.shamoof.user.<username>; an administrator's official token uses com.shamoof. Add the repository to pom.xml and the server entry inside your user-level ~/.m2/settings.xml servers block:

<distributionManagement>
  <repository>
    <id>shamoo</id>
    <url>https://shamoof.com/maven</url>
  </repository>
</distributionManagement>
<server>
  <id>shamoo</id>
  <username>local-cli</username>
  <password>${env.SHAMOO_MAVEN_TOKEN}</password>
</server>
read -rsp "Shamoo Maven token: " SHAMOO_MAVEN_TOKEN && printf '\n'
export SHAMOO_MAVEN_TOKEN
./mvnw deploy
unset SHAMOO_MAVEN_TOKEN

Publisher and administrator

Publish with Gradle

Apply maven-publish, set the project group to your token's exact workspace, and add this repository to build.gradle.kts. Administrators replace the example group with com.shamoof:

import org.gradle.authentication.http.BasicAuthentication

plugins {
    `maven-publish`
}

// Publisher: com.shamoof.user.yourname
// Administrator: com.shamoof
group = "com.shamoof.user.yourname"

publishing {
    repositories {
        maven {
            name = "Shamoo"
            url = uri("https://shamoof.com/maven")
            credentials {
                username = "local-cli"
                password = System.getenv("SHAMOO_MAVEN_TOKEN")
            }
            authentication {
                create<BasicAuthentication>("basic")
            }
        }
    }
}
read -rsp "Shamoo Maven token: " SHAMOO_MAVEN_TOKEN && printf '\n'
export SHAMOO_MAVEN_TOKEN
./gradlew publish --no-daemon
unset SHAMOO_MAVEN_TOKEN

Plugin contract

Marketplace artifacts require valid Shamoo metadata, an existing entrypoint, semantic versioning, supported runtime platforms, compatibility ranges, declared dependencies, and allowlisted permissions.