Astrale CLI은(는) 무엇을 하나요?
astrale은(는) 기존 Astrale 커널에 연결합니다. 인스턴스와 아이덴티티를 선택하고, 그래프 읽기 및 변이를 수행하며, 호출 가능한 함수를 호출하고, 실행 중인 도메인을 설치하며, 커널 저널을 읽고, 인증된 뷰를 엽니다.
렌더링된 명령어 도움말은 플래그와 기본값에 대해 권위를 가집니다:
astrale --help
astrale <command> --help
- 바이너리:
astrale - 패키지:
@astrale-os/cli - 런타임: Node 22 이상; 소스 개발 기본값은 Node 26이며, Node 24 및 Bun도 지원합니다.
- 개발 진입점:
bun cli/bin/astrale.ts <command>
명령어 표면
주요 명령어:
astrale status
astrale whoami
astrale use <name>
astrale get <target>
astrale query [sources...]
astrale introspect <origin-or-path>
astrale mutate
astrale call <path> [key=value...]
astrale token
astrale logs
astrale view [target-or-view]
astrale ui ...
astrale instance ...
astrale domain ...
astrale identity ...
astrale auth ...
astrale idp ...
astrale admin ...
커널에 접촉하는 명령어는 해당되는 경우 --format, --json, --raw, --url, -i/--instance, --timeout, --as, --creds, --anonymous, --debug를 공유합니다. CLI는 하나의 공개 커널 Call을 생성하며, 해당 클라이언트 세션은 원격 라우팅, 신선한 자격 증명, 그리고 하나의 안전한 만료 경로 재시도를 소유합니다.
astrale ui는 로컬 프로젝트 도구이며 astrale ui request를 제외하고는 커널, 인스턴스, 아이덴티티 또는 자격 증명 옵션을 사용하지 않습니다. astrale ui request는 인증된 커널 명령어이며 공유 커널 옵션을 사용합니다.
로컬 또는 북마크 기본 아이덴티티가 존재하는 경우에도 --anonymous를 사용하여 호출자 자격 증명을 생략합니다. --as 또는 --creds와 결합할 수 없습니다. 필수 호출 가능한 함수는 익명 요청을 거부합니다.
UI 프로젝트
Astrale UI는 하나의 트리-쉐이크 가능한 런타임 패키지와 소비자 소유의 패턴, 블록 및 테마 소스입니다. 정확히 발행된 UI 릴리즈로 React 및 Tailwind CSS v4 프로젝트를 초기화합니다:
astrale ui init --preset astrale
astrale ui search "editable chart with export"
astrale ui request "accessible async combobox with creation"
astrale ui add pattern/chart/line-basic
astrale ui add theme/observatory
astrale ui add ./my-playground-export.css
astrale ui doctor
astrale ui doctor --project ./apps/web
astrale ui preset apply compact
초기화는 Base UI + Nova shadcn 구성, 테마 및 프리셋 CSS 가져오기, 그리고 astrale-ui.lock.json을 기록합니다. 잠금 파일은 정확한 패키지 버전, Git 태그, 해결된 커밋 SHA, shadcn 버전, Base UI 버전, 프리셋 및 설치된 소스의 해시를 기록합니다. 레지스트리 메타데이터, 포함된 매니페스트 및 항목 파일은 항상 해당 단일 커밋 스냅샷에서 읽힙니다.
항목 인수 없이 astrale ui add를 실행하면 대화형 선택기가 나타납니다. CI에서는 표준 주소를 명시적으로 제공하세요. 일반 add는 로컬에서 편집된 설치 파일을 거부합니다. 해당 파일을 검토하고, 교체가 의도적인 경우에만 --overwrite --yes를 사용하세요. --dry-run은 프로젝트 파일과 잠금 파일을 변경하지 않은 상태로 둡니다. astrale ui search <free-text> --json을 사용하여 정확한 데모 코드와 해당 command 또는 런타임 packageImport와 함께 짧은 순위 목록 후보를 받으세요.
검색 결과가 요구 사항을 충족하지 못하면 astrale ui request <free-text>를 사용하세요. 이 명령어는 선택된 인스턴스에서 /:ui.astrale.ai:function.request를 호출하여 하나의 제한된 의도(1-512자)를 보내고 반환된 영수증을 출력합니다: { state: "submitted", requestId, collaborationUrl } 또는 { state: "pending" | "outcome-unknown" | "failed" | "conflict", requestId }.
패턴, 블록 및 테마는 설치 후 애플리케이션 소유 소스입니다. 테마는 components/astrale/theme/에 복사되며 구성된 호스트 스타일시트에서 하나의 상대 가져오기를 통해 활성화됩니다. 로컬 플레이그라운드 내보내기는 레지스트리 가져오기나 shadcn 호출이 필요하지 않습니다. 구성 루트 className, 인라인 style, 제어된 값/액션, 안정적인 data-slot 구조는 호스트에 열려 있습니다. 패키지는 재사용 가능한 런타임 동작을 소유합니다. CLI나 SDK는 UI 패키지나 Base UI를 포함하지 않습니다.
경로
정규 커널 경로를 사용하세요:
| 형태 | 예시 |
|---|---|
| 도메인 루트 | /:notes.example.dev |
| 클래스 | /:notes.example.dev:class.Note |
| 정적 호출 가능 | /:notes.example.dev:class.Note:list |
| 인스턴스 호출 가능 | @node-id::notes.example.dev:class.Note.method.archive |
| 노드 ID | @node-id |
| 활성 호출자 약어 | @self |
정적 디스패치는 메서드 앞에 콜론 하나를 사용합니다. 인스턴스 디스패치는 :: 뒤에 전체 도메인-정규화된 메서드 키를 사용합니다. astrale introspect <origin> --bundle로 메서드를 발견하세요. 인트로스펙션은 클래스 리시버를 사용하여 인스턴스 계약을 검사할 수 있습니다. 호출하려면 관찰된 인스턴스 경로가 필요합니다. @self는 CLI가 서명하기 전에 호출 경로의 처음이나 순수한 key=@self 값의 시작에 나타날 때 확장됩니다. --data, stdin JSON, URL 또는 임의의 하위 문자열 내에서는 다시 작성되지 않습니다.
astrale get @self --json
astrale introspect /:notes.example:class.Note::notes.example:class.Note.method.archive
astrale call /:blog.example:class.Author:list limit=10
astrale call /:admin.astrale.ai:core.fleet::admin.astrale.ai:class.Fleet.method.listInstances
인스턴스 및 도메인
astrale instance는 관리자가 프로비저닝한 인스턴스와 로컬 북마크를 결합합니다:
astrale instance create my-app
astrale instance root import development --yes
astrale instance invite my-app [email protected]
astrale instance invitation status @invitation-id
astrale instance status my-app
astrale instance status staging --bookmarked
astrale instance list --include-retired --admin-only --json
astrale instance use my-app
astrale instance bookmark staging --url https://kernel.example.com
astrale instance forget staging
스크립트에서는 명시적 -i <instance>를 사용하세요. instance delete는 관리되는 인스턴스에 영향을 미칩니다. instance forget은 로컬 북마크만 제거합니다. instance status는 기본적으로 관리자 소유 라이프사이클을 보고합니다. --bookmarked를 추가하여 로컬 북마크의 정확한 발급자, JWKS 및 TLS 신뢰를 대신 조사합니다. instance invite는 정확한 인스턴스를 관리할 권한이 필요하며 인스턴스 멤버 액세스만 부여합니다. 내구성 있는 초대장을 즉시 반환합니다. 관리자는 WorkOS 수락 후 하위 Shell 액세스를 자동으로 구체화합니다. instance invitation status <id>는 보존된 초대장에 대해 읽기 전용 관찰을 한 번 수행합니다. completed는 액세스가 구체화되었음을 의미합니다. accepted, registering, registered는 중간 상태이며 완료된 액세스가 아닙니다. 이 명령어는 정확한 초대장 ID가 필요하며 상태를 변경하지 않습니다. instance invitation reconcile <id>는 진단 복구이며 일반적인 초대장 과정이 아닙니다.
배포된 관리 도메인이 없으면 astrale instance list가 관리되는 인스턴스를 가져올 수 없습니다(키-기반 아이덴티티에는 관리자 토큰이 없습니다). astrale instance list --bookmarked를 사용하세요.
Fleet 관리자는 일반 관리 인벤토리에 --include-retired를 추가할 수 있습니다. 기본값은 폐기된 툼스톤을 제외합니다. 포함된 폐기된 인스턴스는 동일한 출력 형태를 사용하며 종료 state: "deleted"로 식별됩니다. issuer 옵션은 관리자가 정확한 증거를 보유한 경우에만 존재합니다. 도달 불가능이 폐기를 의미하지는 않습니다. --admin-only를 추가하여 로컬 북마크를 기계-판독 가능한 엔벨로프에서 생략하세요.
instance create는 WorkOS 호출자와 함께 구성된 관리 도메인을 통해 프로비저닝합니다. 관리자가 호스트 배치를 소유합니다. instance create와 instance root import 모두 --host를 허용하지 않습니다.
instance root import <slug-or-id>는 엔드-투-엔드 암호화된 일회성 전송을 통해 관리자를 통해 대상 소유 인스턴스의 루트 서명 아이덴티티를 검색합니다. 해당 아이덴티티를 관리자 또는 호스트 루트 아이덴티티가 아닌 <slug>-root로 로컬에 가져옵니다. 다른 관리 엔드포인트를 선택하려면 --admin <bookmark> 또는 --admin-url <url>을 사용하세요. 복구에는