⚠️ Early Development Notice This project is in active development and may contain instabilities and security considerations. Exercise caution when using this tool, particularly in or around production environments.
A desktop application for navigating cloud infrastructure through a unified interface. Browse, inspect, and understand relationships between resources across AWS and other cloud providers.
- Unified Resource View: Navigate all your cloud resources in one place
- Relationship Mapping: Automatically discover and visualize resource dependencies
- Multi-Cloud Support: Currently supports AWS with extensible architecture for other providers
- Desktop & Web: Run as an Electron desktop app or in your browser
- Credential Management: Secure credential handling with automatic CLI integration
- List all root CloudFormation stacks in expandable tree view.
- Select resource nodes to show details.
The full-featured experience of arch-navigator will allow for fluid navigation of cloud infrastructure.
arch-navigator ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ SETTINGS
┌-selection----------┐-projection----------------------------------------------┐
┏━━━━━━━━━━━━━━━━━━┓ | ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ QUERY ┃ | ┃ PATH ┃ ┃ LENSES ┃
┗━━━━━━━━━━━━━━━━━━┛ | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━━━━━━┓ | ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ OUTLINE ┃ | ┃ STATISTICS ┃
┃ ┃ | ┃ ┃
┃ ┃ | ┃ ┃
┃ ┃ | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┃ ┃ | ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━┓
┃ ┃ | ┃ FILTERS ┃ ┃ VIEW_SELECTOR ┃
┃ ┃ | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━┛
┃ ┃ | ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ┃ | ┃ DETAILS ┃
┃ ┃ | ┃ ┃
┗━━━━━━━━━━━━━━━━━━┛ | ┃ ┃
┏━━━━━━━━━━━━━━━━━━┓ | ┃ ┃
┃ SUMMARY ┃ | ┃ ┃
┃ ┃ | ┃ ┃
┃ ┃ | ┃ ┃
┗━━━━━━━━━━━━━━━━━━┛ | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
└--------------------┘---------------------------------------------------------┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ PROMPT ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
See DESIGN.md for detailed component descriptions, interaction flows, and design principles.
⚡ NB: These usage patterns will evolve quickly as the project matures.
- Node.js 24+ and pnpm
- Your default AWS CLI profile should be configured on your system
- use the following command to verify your AWS CLI setup:
aws cloudformation list-stacks --query "StackSummaries[?ParentId==null].StackName"- If AWS CLI is configured, you should see a list of existing CloudFormation stacks:
[ "stack-one", "stack-two" ]
- If AWS CLI is not configured, you can paste credential JSON directly in the application
# Clone the repository
git clone https://github.com/awslabs/arch-navigator.git
cd arch-navigator
# Install dependencies
pnpm install
# Build packages
pnpm build
# Built artifacts available apps/electron/out/The build process uses a rudimentary signing approach to enable cross-device builds. The sign script attempts to use an arch-navigator-dev certificate for code signing. If available in macOS Keychain, it will be used. Otherwise, the app will not be signed.
To create the certificate locally, in Keychain Access use 'Certificate Assistant' > 'Create a Certificate':
- Name:
arch-navigator-dev - Identity Type:
Self Signed Root - Certificate Type:
Code Signing
Web Application:
pnpm dev:web
# Opens at http://localhost:5173Desktop Application (Development):
pnpm dev:electron
# Opens appArchitecture Navigator uses a normalized resource representation called a BARN:
{
type: "AWS::EC2::Instance",
identifier: "i-1234567890abcdef0",
arn: "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"
}This allows the application to work with resources from different cloud providers in a consistent way.
- EC2 (Instances, Security Groups, VPCs)
- IAM (Roles, Policies, Users)
- S3 (Buckets)
- Lambda (Functions)
- RDS (Database Instances)
- DynamoDB (Tables)
- SNS (Topics)
- SQS (Queues)
- ELB (Load Balancers)
- CloudFormation (Stacks)
apps/
├── web/ # Web application (SolidJS + Vite)
└── electron/ # Desktop wrapper
packages/
├── api/ # Cloud resource management
├── ui/ # Shared UI components
└── tool/ # Core application logic
- Monorepo: Uses pnpm workspaces
- TypeScript: Strict mode enabled
- Build System: Turbo for orchestration
- Code Quality: Biome for linting and formatting
# Development
pnpm dev:web # Start web dev server
pnpm dev:electron # Launch Electron app
pnpm dev:storybook # Component documentation
# Building
pnpm build # Build all packages
pnpm build:web # Build web app only
pnpm build:electron # Build desktop app
# Code Quality
pnpm lint # Lint all packages
pnpm format # Format code
pnpm typecheck # Type check all packages# Add to specific workspace
pnpm --filter @arch-navigator/api add <package>
# Add dev dependency to root
pnpm add -D <package> -wWe welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and type checking
- Submit a pull request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions