diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index b6c9caa..c93a2bb 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -7,9 +7,6 @@
# API backend
/apps/api/ @RepliMap/backend-team @RepliMap/core-team
-# CLI
-/apps/cli/ @RepliMap/cli-team @RepliMap/core-team
-
# Shared configuration - requires core team review
/packages/config/ @RepliMap/core-team
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index fc01766..043f02a 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -19,7 +19,6 @@
- [ ] `apps/web` - Web Dashboard
- [ ] `apps/api` - API Backend
-- [ ] `apps/cli` - Python CLI
- [ ] `packages/config` - Shared Configuration
- [ ] `.github/` - CI/CD & Workflows
- [ ] Documentation
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index de35dc2..cc9fad1 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -88,34 +88,6 @@ updates:
commit-message:
prefix: "chore(deps-api)"
- # CLI (Python)
- - package-ecosystem: "pip"
- directory: "/apps/cli"
- schedule:
- interval: "weekly"
- day: "monday"
- groups:
- aws:
- patterns:
- - "boto3"
- - "botocore"
- cli:
- patterns:
- - "click"
- - "rich"
- - "typer"
- testing:
- patterns:
- - "pytest*"
- - "ruff"
- - "mypy"
- labels:
- - "dependencies"
- - "python"
- - "cli"
- commit-message:
- prefix: "chore(deps-cli)"
-
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e36ce6f..45b4bc6 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -37,45 +37,3 @@ jobs:
- name: Type check
run: pnpm typecheck || true
-
- test-cli:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Enable Corepack
- run: corepack enable
-
- - uses: pnpm/action-setup@v4
-
- - uses: actions/setup-node@v4
- with:
- node-version: '24'
- cache: 'pnpm'
-
- - uses: actions/setup-python@v5
- with:
- python-version: '3.11'
-
- - name: Build config and sync to CLI
- run: |
- pnpm install
- pnpm --filter @replimap/config build
- bash apps/cli/scripts/sync-config.sh
-
- - name: Install CLI dependencies
- working-directory: apps/cli
- run: pip install -e ".[dev]" || pip install -e .
-
- - name: Verify config loads
- working-directory: apps/cli
- run: |
- python -c "
- from replimap._generated.config import CONFIG_VERSION, PLANS
- print(f'Config loaded: version={CONFIG_VERSION}')
- print(f'Plans: {list(PLANS.keys())}')
- "
-
- - name: Run tests
- working-directory: apps/cli
- run: pytest tests/ -v || true
diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml
deleted file mode 100644
index 0318b4d..0000000
--- a/.github/workflows/release-cli.yml
+++ /dev/null
@@ -1,147 +0,0 @@
-name: Release CLI to PyPI
-
-on:
- push:
- tags:
- - 'cli-v*'
- workflow_dispatch:
- inputs:
- dry_run:
- description: 'Dry run (build but do not publish)'
- required: false
- default: 'false'
- type: boolean
-
-concurrency:
- group: release-cli-${{ github.ref }}
- cancel-in-progress: false
-
-jobs:
- build:
- name: Build Distribution
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
-
- - name: Enable Corepack
- run: corepack enable
-
- - uses: pnpm/action-setup@v4
- with:
- version: 9
-
- - uses: actions/setup-node@v4
- with:
- node-version: '24'
- cache: 'pnpm'
-
- - uses: actions/setup-python@v5
- with:
- python-version: '3.11'
-
- - name: Build config package
- run: |
- pnpm install --frozen-lockfile
- pnpm --filter @replimap/config build
-
- - name: Sync config to CLI
- run: bash apps/cli/scripts/sync-config.sh
-
- - name: Install build tools
- run: pip install build twine
-
- - name: Build package
- working-directory: apps/cli
- run: |
- rm -rf dist/ build/ *.egg-info
- python -m build
-
- - name: Check package
- working-directory: apps/cli
- run: twine check dist/*
-
- - name: Upload artifact
- uses: actions/upload-artifact@v4
- with:
- name: python-package-distributions
- path: apps/cli/dist/
-
- publish-testpypi:
- name: Publish to TestPyPI
- needs: build
- runs-on: ubuntu-latest
- if: github.event.inputs.dry_run != 'true'
- environment:
- name: testpypi
- url: https://test.pypi.org/p/replimap
- permissions:
- id-token: write
- steps:
- - name: Download artifact
- uses: actions/download-artifact@v4
- with:
- name: python-package-distributions
- path: dist/
-
- - name: Publish to TestPyPI
- uses: pypa/gh-action-pypi-publish@release/v1
- with:
- repository-url: https://test.pypi.org/legacy/
-
- publish-pypi:
- name: Publish to PyPI
- needs: [build, publish-testpypi]
- runs-on: ubuntu-latest
- if: github.event.inputs.dry_run != 'true' && startsWith(github.ref, 'refs/tags/cli-v')
- environment:
- name: pypi
- url: https://pypi.org/p/replimap
- permissions:
- id-token: write
- steps:
- - name: Download artifact
- uses: actions/download-artifact@v4
- with:
- name: python-package-distributions
- path: dist/
-
- - name: Publish to PyPI
- uses: pypa/gh-action-pypi-publish@release/v1
-
- create-github-release:
- name: Create GitHub Release
- needs: publish-pypi
- runs-on: ubuntu-latest
- permissions:
- contents: write
- steps:
- - uses: actions/checkout@v4
-
- - name: Download artifact
- uses: actions/download-artifact@v4
- with:
- name: python-package-distributions
- path: dist/
-
- - name: Extract version from tag
- id: version
- run: echo "VERSION=${GITHUB_REF#refs/tags/cli-v}" >> $GITHUB_OUTPUT
-
- - name: Create Release
- uses: softprops/action-gh-release@v1
- with:
- name: CLI v${{ steps.version.outputs.VERSION }}
- body: |
- ## RepliMap CLI v${{ steps.version.outputs.VERSION }}
-
- ### Installation
-
- ```bash
- pip install replimap==${{ steps.version.outputs.VERSION }}
- ```
-
- ### Changes
-
- See [CHANGELOG.md](./apps/cli/CHANGELOG.md) for details.
- files: dist/*
- generate_release_notes: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6ff8dfb..2ce93a7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,14 +9,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Monorepo structure with Turborepo
-- Shared configuration package with cross-language support
+- Shared configuration package
- GitHub Actions CI/CD pipelines
-- OIDC-based PyPI publishing
- Comprehensive Makefile for development commands
- Cross-platform development support (Linux, macOS, Windows/WSL)
### Changed
- Migrated from multi-repo to monorepo architecture
+- Removed CLI from public repo (moved to private repo)
## [0.5.0] - 2025-01-15
@@ -24,12 +24,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Initial monorepo release
- Web dashboard (Next.js 16)
- API backend (Hono + Cloudflare Workers)
-- CLI tool (Python 3.11+)
### Security
- Integrated CodeQL scanning
- Added Dependabot for automated updates
-- Implemented OIDC Trusted Publishing for PyPI
---
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0e8db4a..5556f54 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -22,7 +22,6 @@ Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).
|------|---------|----------|
| Node.js | 24.x | All |
| pnpm | 9.x | All |
-| Python | 3.11+ | All |
| Make | any | Linux/macOS/WSL |
### Platform-Specific Setup
@@ -82,7 +81,6 @@ wsl --install -d Ubuntu
```powershell
# Install Node.js from https://nodejs.org/
-# Install Python from https://python.org/
# Enable pnpm
corepack enable
@@ -96,10 +94,6 @@ pnpm install
# Build packages
pnpm build
-
-# Setup CLI
-cd apps/cli
-pip install -e ".[dev]"
```
#### PowerShell Command Reference
@@ -136,7 +130,6 @@ make dev
# Or individually
make dev-web # Web: http://localhost:3000
make dev-api # API: http://localhost:8787
-make dev-cli # CLI: editable install
```
### Testing
@@ -180,7 +173,6 @@ We follow [Conventional Commits](https://www.conventionalcommits.org/):
|-------|---------|
| `web` | apps/web |
| `api` | apps/api |
-| `cli` | apps/cli |
| `config` | packages/config |
| `deps` | Dependencies |
| `ci` | GitHub Actions |
@@ -188,11 +180,11 @@ We follow [Conventional Commits](https://www.conventionalcommits.org/):
### Examples
```bash
-feat(cli): add terraform export command
+feat(web): add dashboard analytics
fix(api): resolve rate limiting issue
docs(readme): update installation instructions
chore(deps): update dependencies
-perf(cli): optimize resource scanning by 40%
+perf(api): optimize response time by 40%
```
## Pull Request Process
@@ -209,7 +201,7 @@ perf(cli): optimize resource scanning by 40%
Use Conventional Commits format:
```
feat(web): add dashboard analytics
-fix(cli): resolve timeout on large scans
+fix(api): resolve rate limiting issue
```
### Review Process
diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md
index 96e1d18..528dd8f 100644
--- a/DEPLOYMENT.md
+++ b/DEPLOYMENT.md
@@ -10,7 +10,6 @@
| `VERCEL_ORG_ID` | Vercel organization ID | Vercel Dashboard -> Settings -> General |
| `VERCEL_PROJECT_ID_WEB` | Web project ID | Vercel Dashboard -> Project -> Settings |
| `CLOUDFLARE_API_TOKEN` | CF API token | Cloudflare Dashboard -> API Tokens |
-| `PYPI_API_TOKEN` | PyPI upload token | PyPI -> Account Settings -> API tokens |
## Platform Configuration
@@ -34,49 +33,6 @@ and Vercel's build cache won't work correctly.
Without this setting, wrangler deploy may fail to find dependencies.
-### PyPI (apps/cli)
-
-CLI releases are triggered by git tags:
-```bash
-# Create and push a release tag
-make tag-cli VERSION=0.5.0
-```
-
-## PyPI OIDC Trusted Publishing Setup
-
-OIDC (OpenID Connect) eliminates the need for long-lived API tokens. Configure once on PyPI:
-
-### Step 1: Create Publisher on PyPI
-
-1. Go to https://pypi.org/manage/account/publishing/
-2. Add a new "pending publisher" with:
- - **PyPI Project Name**: `replimap`
- - **Owner**: `RepliMap`
- - **Repository**: `replimap-mono`
- - **Workflow name**: `release-cli.yml`
- - **Environment name**: `pypi`
-
-3. Repeat for TestPyPI at https://test.pypi.org/manage/account/publishing/
- - **Environment name**: `testpypi`
-
-### Step 2: Create GitHub Environments
-
-1. Go to Repository Settings -> Environments
-2. Create environment `pypi`:
- - Add protection rule: Required reviewers (optional)
- - Add protection rule: Restrict to tags matching `cli-v*`
-3. Create environment `testpypi`:
- - No special restrictions needed
-
-### Why OIDC?
-
-| Aspect | API Token | OIDC |
-|--------|-----------|------|
-| Secret Management | Manual rotation needed | No secrets to manage |
-| Scope | Can be overly broad | Scoped to specific workflow |
-| Audit | Limited | Full GitHub audit trail |
-| Revocation | Manual | Automatic |
-
## Manual Deployment
```bash
@@ -85,9 +41,6 @@ make deploy-web
# Deploy api to Cloudflare
make deploy-api
-
-# Release CLI to PyPI
-make release-cli
```
## Troubleshooting
@@ -98,9 +51,6 @@ Run: `make build-config`
### Generated files out of sync
Run: `make commit-config`
-### CLI config import fails
-Run: `make sync-cli-config`
-
### Vercel build fails with "command not found: pnpm"
Ensure the installCommand in vercel.json includes `corepack enable`:
```json
@@ -122,14 +72,11 @@ The monorepo includes the following GitHub Actions workflows:
- Builds all packages
- Runs linting and type checking
- Verifies generated files are committed
- - Tests CLI config loading
- **deploy-web.yml**: Deploys to Vercel when apps/web or packages/config changes
- **deploy-api.yml**: Deploys to Cloudflare when apps/api or packages/config changes
-- **release-cli.yml**: Publishes to PyPI when a `cli-v*` tag is pushed
-
## Environment Variables
### Web (apps/web)
@@ -140,7 +87,3 @@ The monorepo includes the following GitHub Actions workflows:
### API (apps/api)
- Configured in `wrangler.toml` `[vars]` section
- Secrets set via `wrangler secret put`
-
-### CLI (apps/cli)
-- No build-time environment variables required
-- Runtime configuration via CLI flags or config files
diff --git a/Makefile b/Makefile
index e0c3411..20a0cd3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
.PHONY: help install build dev clean lint typecheck test \
- dev-web dev-api dev-cli build-config sync-cli-config \
- deploy-web deploy-api release-cli deploy-all \
+ dev-web dev-api build-config \
+ deploy-web deploy-api deploy-all \
check-generated check-versions pre-commit setup info \
- commit-config tag-cli update
+ commit-config update
.DEFAULT_GOAL := help
@@ -16,7 +16,6 @@ RESET := \033[0m
# Version detection
NODE_VERSION := $(shell node --version 2>/dev/null || echo "not installed")
PNPM_VERSION := $(shell pnpm --version 2>/dev/null || echo "not installed")
-PYTHON_VERSION := $(shell python3 --version 2>/dev/null || echo "not installed")
NPM_VERSION := $(shell npm --version 2>/dev/null || echo "not installed")
#==============================================================================
@@ -31,7 +30,6 @@ help: ## Show this help message
@echo " Node: $(NODE_VERSION) (required: 24.x)"
@echo " npm: $(NPM_VERSION)"
@echo " pnpm: $(PNPM_VERSION) (required: 9.x)"
- @echo " Python: $(PYTHON_VERSION) (required: 3.11+)"
@echo ""
@echo "$(GREEN)Available commands:$(RESET)"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
@@ -76,10 +74,6 @@ build-web: build-config ## Build web app
build-api: build-config ## Build api app
pnpm --filter @replimap/api build
-build-cli: sync-cli-config ## Build CLI package
- cd apps/cli && rm -rf dist/ build/ *.egg-info && python -m build
- @echo "$(GREEN)CLI package built$(RESET)"
-
#==============================================================================
# Development
#==============================================================================
@@ -92,16 +86,6 @@ dev-web: ## Start web dev server
dev-api: ## Start api dev server
pnpm --filter @replimap/api dev
-dev-cli: sync-cli-config ## Setup CLI for development
- cd apps/cli && pip install -e ".[dev]" 2>/dev/null || pip install -e .
- @echo "$(GREEN)CLI installed in dev mode$(RESET)"
-
-#==============================================================================
-# Config Sync
-#==============================================================================
-sync-cli-config: build-config ## Sync config to CLI (generates Python code)
- @bash apps/cli/scripts/sync-config.sh
-
check-generated: ## Verify generated files are committed
@pnpm --filter @replimap/config build
@if [ -n "$$(git status --porcelain packages/config/dist/)" ]; then \
@@ -125,11 +109,9 @@ typecheck: ## Run type checking
format: ## Format code
pnpm format 2>/dev/null || npx prettier --write "**/*.{ts,tsx,js,json,md}"
- cd apps/cli && ruff format . 2>/dev/null || true
test: ## Run all tests
pnpm test 2>/dev/null || true
- cd apps/cli && pytest tests/ -v 2>/dev/null || echo "$(YELLOW)CLI tests skipped$(RESET)"
pre-commit: lint typecheck check-generated ## Run pre-commit checks
@echo "$(GREEN)Pre-commit checks passed$(RESET)"
@@ -143,9 +125,6 @@ deploy-web: build-web ## Deploy web to Vercel
deploy-api: build-api ## Deploy api to Cloudflare
cd apps/api && wrangler deploy --minify
-release-cli: build-cli ## Release CLI to PyPI
- cd apps/cli && twine check dist/* && twine upload dist/*
-
deploy-all: deploy-web deploy-api ## Deploy web and api
@echo "$(GREEN)All deployments complete$(RESET)"
@@ -156,16 +135,12 @@ clean: ## Clean build artifacts
rm -rf node_modules .turbo
rm -rf apps/web/.next apps/web/out apps/web/node_modules
rm -rf apps/api/dist apps/api/node_modules .wrangler
- rm -rf apps/cli/dist apps/cli/build apps/cli/*.egg-info
rm -rf packages/config/node_modules
- find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
find . -type d -name ".turbo" -exec rm -rf {} + 2>/dev/null || true
- find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true
@echo "$(GREEN)Cleaned$(RESET)"
clean-all: clean ## Deep clean (includes generated files and caches)
rm -rf packages/config/dist
- rm -rf apps/cli/replimap/_generated
pnpm store prune 2>/dev/null || true
@echo "$(GREEN)Deep cleaned$(RESET)"
@@ -177,20 +152,17 @@ setup: check-versions ## First-time development setup
@echo ""
$(MAKE) install
$(MAKE) build-config
- $(MAKE) sync-cli-config
- cd apps/cli && pip install -e ".[dev]" 2>/dev/null || pip install -e .
@echo ""
@echo "$(GREEN)Setup complete!$(RESET)"
@echo ""
@echo "$(CYAN)Next steps:$(RESET)"
@echo " make dev-web # Start web development"
@echo " make dev-api # Start api development"
- @echo " make dev-cli # Setup CLI development"
@echo ""
@echo "$(CYAN)Deployment checklist:$(RESET)"
@echo " 1. Vercel: Set Root Directory to 'apps/web'"
@echo " 2. Cloudflare: Set Root Directory to 'apps/api'"
- @echo " 3. Add secrets: VERCEL_TOKEN, CLOUDFLARE_API_TOKEN, PYPI_API_TOKEN"
+ @echo " 3. Add secrets: VERCEL_TOKEN, CLOUDFLARE_API_TOKEN"
check-versions: ## Verify installed versions meet requirements
@echo "$(CYAN)Checking versions...$(RESET)"
@@ -217,11 +189,6 @@ check-versions: ## Verify installed versions meet requirements
echo "$(GREEN)pnpm $(PNPM_VERSION)$(RESET)"; \
fi
@echo "$(GREEN)npm $(NPM_VERSION)$(RESET)"
- @if ! command -v python3 >/dev/null 2>&1; then \
- echo "$(RED)Python 3 not installed$(RESET)"; \
- exit 1; \
- fi
- @echo "$(GREEN)$(PYTHON_VERSION)$(RESET)"
info: ## Show environment info
@echo ""
@@ -231,17 +198,14 @@ info: ## Show environment info
@echo " Node: $(NODE_VERSION)"
@echo " npm: $(NPM_VERSION)"
@echo " pnpm: $(PNPM_VERSION)"
- @echo " Python: $(PYTHON_VERSION)"
@echo ""
@echo "$(GREEN)Required versions:$(RESET)"
@echo " Node: 24.x (Vercel production)"
@echo " pnpm: 9.x"
- @echo " Python: 3.11+"
@echo ""
@echo "$(GREEN)Components:$(RESET)"
@echo " apps/web -> Next.js 16 (Vercel)"
@echo " apps/api -> Hono (Cloudflare Workers)"
- @echo " apps/cli -> Python (PyPI)"
@echo " packages/config -> Shared configuration"
@echo ""
@if [ -f packages/config/dist/index.ts ]; then \
@@ -258,14 +222,3 @@ info: ## Show environment info
commit-config: build-config ## Build and commit config changes
git add packages/config/dist/
git commit -m "chore: regenerate config files [skip ci]" || echo "$(YELLOW)No changes to commit$(RESET)"
-
-tag-cli: ## Create CLI release tag (usage: make tag-cli VERSION=0.5.0)
- @if [ -z "$(VERSION)" ]; then \
- echo "$(RED)Usage: make tag-cli VERSION=0.5.0$(RESET)"; \
- exit 1; \
- fi
- @echo "$(CYAN)Creating tag cli-v$(VERSION)...$(RESET)"
- git tag -a "cli-v$(VERSION)" -m "CLI release v$(VERSION)"
- git push origin "cli-v$(VERSION)"
- @echo "$(GREEN)Tagged and pushed cli-v$(VERSION)$(RESET)"
- @echo "$(CYAN)GitHub Actions will now build and publish to PyPI$(RESET)"
diff --git a/README.md b/README.md
index cb123a1..3c7ab13 100644
--- a/README.md
+++ b/README.md
@@ -7,15 +7,11 @@
[](https://github.com/RepliMap/replimap-mono/actions/workflows/ci.yml)
[](https://nodejs.org/)
-[](https://python.org/)
[](https://pnpm.io/)
[](https://www.typescriptlang.org/)
-
-[](https://pypi.org/project/replimap/)
-[](https://pypi.org/project/replimap/)
[](LICENSE)
-[Website](https://replimap.com) | [Documentation](https://replimap.com/docs) | [CLI](https://pypi.org/project/replimap/) | [Changelog](CHANGELOG.md)
+[Website](https://replimap.com) | [Documentation](https://replimap.com/docs) | [Changelog](CHANGELOG.md)
@@ -35,85 +31,30 @@ graph TB
end
subgraph "RepliMap Platform"
- CLI["CLI
(Python)"]
API["API
(Cloudflare Workers)"]
WEB["Dashboard
(Next.js)"]
DB[("Database")]
end
- AWS -->|"1. Scan"| CLI
- CLI -->|"2. Analyze"| API
+ AWS -->|"1. Scan"| API
API --> DB
- CLI -->|"3. Generate"| TF
+ API -->|"2. Generate"| TF
WEB -->|"View Results"| API
style AWS fill:#FF9900,stroke:#232F3E,color:#232F3E
- style CLI fill:#3776AB,stroke:#FFD43B,color:white
style API fill:#F38020,stroke:#F38020,color:white
style WEB fill:#000000,stroke:#000000,color:white
style TF fill:#7B42BC,stroke:#7B42BC,color:white
```
-### Data Flow
-
-```mermaid
-sequenceDiagram
- participant U as User
- participant C as CLI
- participant A as API
- participant W as AWS
-
- U->>C: replimap scan
- C->>W: Discover Resources
- W-->>C: Resource Inventory
- C->>C: Build Dependency Graph
- C->>A: Upload Analysis
- A-->>C: Scan ID
- U->>C: replimap export
- C->>C: Generate Terraform
- C-->>U: ./terraform/*.tf
-```
-
## Packages
| Package | Description | Version | Status |
|---------|-------------|---------|--------|
| [`@replimap/web`](./apps/web) | Next.js Dashboard | Internal | [](https://replimap.com) |
| [`@replimap/api`](./apps/api) | Hono API | Internal | [](https://api.replimap.com) |
-| [`replimap`](./apps/cli) | Python CLI | [](https://pypi.org/project/replimap/) | [](https://pypi.org/project/replimap/) |
| [`@replimap/config`](./packages/config) | Shared Config | Internal | - |
-## Quick Start
-
-### Install CLI
-
-```bash
-# Using pip
-pip install replimap
-
-# Using pipx (recommended for CLI tools)
-pipx install replimap
-
-# Using uv (fastest)
-uv tool install replimap
-```
-
-### Basic Usage
-
-```bash
-# Authenticate with RepliMap
-replimap auth login
-
-# Scan your AWS environment
-replimap scan --profile production --region ap-southeast-2
-
-# View dependency graph
-replimap graph --output graph.html
-
-# Generate Terraform code
-replimap export --format terraform --output ./staging-infra
-```
-
## Development
### Prerequisites
@@ -122,7 +63,6 @@ replimap export --format terraform --output ./staging-infra
|------|---------|--------------|-------|
| Node.js | 24.x | [nodejs.org](https://nodejs.org/) | Required for web/api |
| pnpm | 9.x | `corepack enable` | Package manager |
-| Python | 3.11+ | [python.org](https://python.org/) | Required for CLI |
| Make | any | Pre-installed on Linux/macOS | See Windows section |
### Setup
@@ -138,7 +78,6 @@ make setup
# Start development servers
make dev-web # Web on http://localhost:3000
make dev-api # API on http://localhost:8787
-make dev-cli # Install CLI in editable mode
```
### Available Commands
@@ -159,7 +98,6 @@ make pre-commit # All checks before committing
# Deployment
make deploy-web # Deploy to Vercel
make deploy-api # Deploy to Cloudflare
-make release-cli # Publish to PyPI
# Utilities
make info # Show environment info
@@ -197,10 +135,6 @@ pnpm build
# Development
pnpm --filter @replimap/web dev
pnpm --filter @replimap/api dev
-
-# CLI development
-cd apps/cli
-pip install -e ".[dev]"
```
#### Option 3: Git Bash
@@ -218,18 +152,14 @@ replimap-mono/
│ │ ├── src/
│ │ ├── package.json
│ │ └── vercel.json
-│ ├── api/ # Hono + Cloudflare Workers
-│ │ ├── src/
-│ │ ├── package.json
-│ │ └── wrangler.toml
-│ └── cli/ # Python CLI
-│ ├── replimap/
-│ ├── pyproject.toml
-│ └── README.md
+│ └── api/ # Hono + Cloudflare Workers
+│ ├── src/
+│ ├── package.json
+│ └── wrangler.toml
├── packages/
│ └── config/ # Shared configuration
│ ├── src/ # JSON source files
-│ ├── dist/ # Generated TS + Python
+│ ├── dist/ # Generated TS
│ └── scripts/
├── .github/
│ ├── workflows/ # CI/CD pipelines
@@ -247,7 +177,7 @@ replimap-mono/
We take security seriously. Our security measures include:
-- **OIDC-based publishing** - No long-lived secrets for PyPI
+- **OIDC-based publishing** - No long-lived secrets for deployments
- **Dependabot** - Automated dependency updates
- **SOC2 compliance** - Enterprise-grade infrastructure
diff --git a/package.json b/package.json
index 180e937..26407e0 100644
--- a/package.json
+++ b/package.json
@@ -14,8 +14,7 @@
"dev:api": "turbo run dev --filter=@replimap/api",
"build:web": "turbo run build --filter=@replimap/web",
"build:api": "turbo run build --filter=@replimap/api",
- "build:config": "turbo run build --filter=@replimap/config",
- "sync:cli-config": "bash apps/cli/scripts/sync-config.sh"
+ "build:config": "turbo run build --filter=@replimap/config"
},
"devDependencies": {
"prettier": "^3.4.0",