CLI tool for submitting URLs to aidirs.org、clidirs.com and backlinkdirs.com.
Recommended: install from npm for the fastest setup and easiest updates.
npm install -g @brenn/shipThen run:
ship --helpcurl -fsSL https://raw.githubusercontent.com/RobinWM/ship-cli/main/install.sh | bashirm https://raw.githubusercontent.com/RobinWM/ship-cli/main/install.ps1 | iexcurl -fsSL https://raw.githubusercontent.com/RobinWM/ship-cli/main/install.cmd -o install.cmd && install.cmd && del install.cmdOr from source:
git clone https://github.com/RobinWM/ship-cli.git
cd ship-cli
bash install.shNote: Submitting URLs requires an active subscription plan.
ship loginOr choose a site explicitly:
ship login --site aidirs.org
ship login --site backlinkdirs.comSelect the site, browser opens automatically, login and done. Tokens are auto-saved per site. If you don't have an API token yet, one will be created automatically.
ship login
ship login --site backlinkdirs.comship submit https://example.com
ship submit https://example.com --site backlinkdirs.com
ship submit https://example.com --quietship fetch https://example.com --jsonship --help| Command | Description |
|---|---|
login |
Browser-based login |
submit <url> |
Submit a URL to the selected site |
fetch <url> |
Preview a URL without creating a record |
--json |
Machine-readable output for scripts |
--quiet |
Print only response payload |
--help |
Show help |
~/.config/ship/config.json
{
"currentSite": "aidirs.org",
"sites": {
"aidirs.org": {
"token": "your-token-here",
"baseUrl": "https://aidirs.org"
},
"backlinkdirs.com": {
"token": "your-other-token",
"baseUrl": "https://backlinkdirs.com"
},
"clidirs.com": {
"token": "your-other-token",
"baseUrl": "https://clidirs.com"
}
}
}Legacy single-site config is migrated automatically on next login/use.
Config file is the recommended approach for multi-site usage.
Environment variables are still supported, but they work best as a single-site override/fallback for the current command:
export DIRS_TOKEN="your-token-here"
export DIRS_BASE_URL="https://aidirs.org"
ship submit https://example.comWhen using environment variables, DIRS_TOKEN is applied to the site identified by DIRS_BASE_URL (or the default site
if DIRS_BASE_URL is omitted). For managing multiple sites long-term, use ship login so tokens are stored per site in
the config file.
npm install
npm run build
npm testThe release flow is now a single local command plus one GitHub Actions workflow:
npm run release:patch
npm run release:minor
npm run release:majorEach release command does four things:
- Runs
npm test - Bumps the version with
npm version - Creates the matching git tag like
v0.1.10 - Pushes
mainand the new tag to GitHub
After the tag is pushed, .github/workflows/release.yml automatically:
- creates the GitHub Release if it does not exist yet
- builds standalone binaries for Linux, macOS, and Windows
- builds the npm package tarball
- uploads all release assets to that GitHub Release
- publishes the package to npm when
NPM_TOKENis configured in GitHub Actions secrets
You can manually rerun the asset build from the GitHub Actions UI by running the Release workflow and entering an
existing tag.
The release workflow can also publish to npm automatically.
You must configure NPM_TOKEN first. Otherwise the workflow will create the GitHub Release and upload assets, but it
will skip npm publish.
Add this secret in your repository:
Settings -> Secrets and variables -> Actions -> New repository secret
Then set:
Name: NPM_TOKEN
Value: your npm automation token
An npm automation token is recommended so CI publishing is not blocked by interactive login or 2FA prompts.
If you prefer to publish manually, run:
npm login
npm pack --dry-run
npm publishPublishing uses files in package.json, so npm packages include dist/ even though build output is generated from
src/.
GitHub Releases are expected to publish:
ship-linux-x64ship-linux-arm64ship-darwin-x64ship-darwin-arm64ship-windows-x64.exeship-latest.tgz