# App

> Initializes EB projects and manages Elastic Beanstalk applications, application versions, and version lifecycle rules. Use when user says "eb init", "eb appversion", "application versions", "version lifecycle", "list applications", "delete version", "initialize project", "create beanstalk app", "new eb application", or "my beanstalk apps". For environment operations use environment skill. Use when this capability is needed.

- Skill: `tomevault-io/app-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/app-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/app-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/app-2

---


# Application Management

Initialize projects, manage application versions, and configure version lifecycle using the EB CLI.

## When to Use

- Initialize an EB project (`eb init`)
- List applications
- Manage application versions
- Configure version lifecycle rules

## When NOT to Use

- Managing environments → use `environment` skill
- Deploying code → use `deploy` skill
- Checking status → use `status` skill

---

## Initialize

```bash
eb init
eb init <app-name> --region <region> --platform "<platform>"
```

## List Applications

```bash
aws elasticbeanstalk describe-applications \
  --query 'Applications[*].[ApplicationName,DateCreated]' --output table
```

## Application Versions

```bash
eb appversion                            # List versions
eb appversion --delete <version-label>   # Delete version
```

## Version Lifecycle

```bash
eb appversion lifecycle                  # Configure lifecycle rules
```

Or via AWS CLI:
```bash
aws elasticbeanstalk update-application-resource-lifecycle \
  --application-name <app-name> \
  --resource-lifecycle-config '{
    "VersionLifecycleConfig": {
      "MaxCountRule": {"Enabled": true, "MaxCount": 200, "DeleteSourceFromS3": true},
      "MaxAgeRule": {"Enabled": true, "MaxAgeInDays": 180, "DeleteSourceFromS3": true}
    },
    "ServiceRole": "arn:aws:iam::<account>:role/aws-elasticbeanstalk-service-role"
  }' --output json
```

## .elasticbeanstalk/config.yml

`eb init` creates `.elasticbeanstalk/config.yml` in your project root. This file stores:
- Default application name and region
- Default environment
- Platform and branch settings

```yaml
# .elasticbeanstalk/config.yml (auto-generated by eb init)
branch-defaults:
  main:
    environment: my-app-prod
global:
  application_name: my-app
  default_region: us-east-1
  default_platform: Node.js 22
```

Add `.elasticbeanstalk/` to `.gitignore` if it contains environment-specific settings, or commit it for shared CI/CD workflows.

---

## Composability

- **Create environment**: Use `environment` skill
- **Deploy code**: Use `deploy` skill
- **Platform updates**: Use `maintenance` skill

## Additional Resources

- [Platforms](../_shared/references/platforms.md)

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/shinmc) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

