Skip to main content

yjcli

CLI that scaffolds YJ platform folders, services, and AI agent wiring (Cursor, Claude Code, Codex).

Templates, skills, and root make files ship inside the package and are copied into the target repo. Standing agent guidance lives in AGENTS.md only (CLAUDE.md is a mirror).

Install

uv tool install yjcli
# pin a version:
uv tool install yjcli==0.0.5

yjcli --version
yjcli -h

Upgrade / remove:

uv tool upgrade yjcli
uv tool uninstall yjcli

Quick start

uv tool install yjcli
cd /path/to/your-repo
yjcli init --all
yjcli service add -p backend -n api
# edit AGENTS.md, then:
yjcli sync agents

make backend                 # start all backend services
make backend NAME=api        # start one service

Platforms

Use with -t / --type (repeatable on init / platform add):

backend · backend-service · frontend · mobile-app · pc-app · cli · browser-extension · scheduler

What init creates

  • AGENTS.md, CLAUDE.md (mirror of AGENTS.md)
  • Skills under .cursor/skills/, .claude/skills/, .agents/skills/ (Codex)
  • Claude settings.json
  • Root Makefile, make.bat, TOOLS.md, .gitignore
  • Diff.md — user-maintained architecture difference and manual restoration notes
  • Selected platform roots with scripts/run.* and development/production deploy templates

The root Makefile / make.bat wires platform run and deploy entry points. Deploy templates print the exact file to implement and fail until the project supplies its build/package and upload logic. They remain platform-level; do not add per-service scripts/ directories or per-service Makefiles.

Diff.md is created only when missing, including with init --force. yjcli never reads, updates, overwrites, or uses it for automatic restoration during sync or migration.

Operating rules (skill routing, output discipline) are in AGENTS.md — not in .cursor/rules / .claude/rules.

Run (make)

Platform targets are discovered from */scripts/run.sh (after init / platform add). Each service declares its local command as RUN_COMMAND in .env.local-dev. New services include .env.local-dev, .env.development, .env.production, and .env.examples. Only .env.local-dev and .env.examples are required; development/production may be removed and other .env.<environment> files may be added. Commit .env.examples only. The platform runner executes that repository-owned declaration instead of inferring npm, uv, Go, or another language/runtime from project manifests.

make <platform>                 # all services under that platform (concurrent)
make <platform> NAME=<service>  # one service
make <platform>-deploy-development [NAME=<service>]
make <platform>-deploy-production [NAME=<service>]
make help

Sync

Command When
yjcli sync agents After editing AGENTS.md — refreshes CLAUDE.md
yjcli sync skills Refresh packaged skills (Cursor / Claude / Codex)
yjcli sync make Overwrite root make/run files; install missing deploy scripts while preserving implemented ones
yjcli sync all Soft upgrade — mirror CLAUDE + skills + make (keeps your AGENTS.md)
yjcli sync migrate -y Hard upgrade — package template overwrites AGENTS.md, wipes skills dirs, drops legacy rules/.agent, refreshes settings/TOOLS/gitignore/make

Edit AGENTS.md only; do not edit CLAUDE.md by hand. Use migrate when upgrading from older yjcli layouts (rules era).

Options

  • --type / -t — platform type (backend, frontend, …) on init / platform add.
  • --platform / -p — existing platform root on service add.
  • --name / -n — service/app name on service add.
  • --path <dir> — target repo root (default: current directory).
  • --force / -f — overwrite existing root/agent files without prompting (init only).

Notes

  • platform add creates platform roots and their run/deploy scripts (no services, skills, or root Makefile).
  • service add needs the platform root first (init or platform add).
  • Non-interactive: pass -t / --all / -p / -n as needed, and pass --yes for every sync command.
  • doctor checks the installed package assets, not your target repo.
  • sync skills / sync all remove legacy .cursor/rules and .claude/rules if present.
  • sync migrate also overwrites AGENTS.md from the package (destructive).

Commands

yjcli init
yjcli init --all
yjcli init -t backend -t frontend
yjcli init --force

yjcli platform add
yjcli platform add --all
yjcli platform add -t cli
yjcli platform add -t scheduler

yjcli service add
yjcli service add -p backend -n api
yjcli service add -p scheduler -n operations

yjcli sync agents
yjcli sync skills
yjcli sync make
yjcli sync all
yjcli sync migrate --yes
yjcli doctor

Research: token & exploration

Not measured yet.

From the workspace root (sibling of this package), with CURSOR_API_KEY in tools/.env:

make bench                 # Cursor SDK: prepare → trials → report → this section

See bench/README.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yjcli-0.2.1.tar.gz (36.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yjcli-0.2.1-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file yjcli-0.2.1.tar.gz.

File metadata

  • Download URL: yjcli-0.2.1.tar.gz
  • Upload date:
  • Size: 36.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for yjcli-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c6b327cab580ea27a1c9757d11e21d1c949602bf36330ccb510c60950891751e
MD5 f8a730b3339dcaf181a436487064ae52
BLAKE2b-256 6de3f1f8c0c76baf075a7b302b5337af8950f8c795ca66b4397b6f706dc2f81e

See more details on using hashes here.

File details

Details for the file yjcli-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: yjcli-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.5

File hashes

Hashes for yjcli-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf840380f284ca0a3bef099bef89eb33fc27b2185d7432a760d523caac8bd0ff
MD5 f0da217a2fb25884dc6eaaac9a20265e
BLAKE2b-256 35bfdc2be1b4a88a034b3d8333be7a9d680e9d4fece797d341b37515586e35d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page