https://github.com/knqyf263/sou
A tool for exploring files in container image layers
https://github.com/knqyf263/sou
cli container-image tui
Last synced: 4 months ago
JSON representation
A tool for exploring files in container image layers
- Host: GitHub
- URL: https://github.com/knqyf263/sou
- Owner: knqyf263
- License: apache-2.0
- Created: 2025-01-31T11:05:12.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-07T10:16:35.000Z (over 1 year ago)
- Last Synced: 2025-04-23T15:51:34.847Z (about 1 year ago)
- Topics: cli, container-image, tui
- Language: Go
- Homepage:
- Size: 9.66 MB
- Stars: 46
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sou
A modern TUI tool for exploring container image layers with an intuitive interface.
> The name "sou" comes from the Japanese word "å±€" (ãã/sÅ) which means "layer". It can be pronounced as "so".

## Features
- ð Interactive TUI for seamless navigation through container images
- ð Explore files within each layer using a built-in file picker
- ð Quick preview of file contents within layers
- ðŸ Easy export of files from layers to your local filesystem
- ð View image manifests and configurations
- ðŠ Support for both local and remote container images
## Note
> ð€ This project is experimentally developed entirely with Claude 3.5 Sonnet, exploring the possibilities of AI-assisted development.
## Installation
### Using Homebrew
```bash
brew install knqyf263/sou/sou
```
### Using Container Image
```bash
docker run --rm -it ghcr.io/knqyf263/sou:latest nginx:latest
```
### Using Go
```bash
go install github.com/knqyf263/sou@latest
```
### From Source
```bash
git clone https://github.com/knqyf263/sou.git
cd sou
go build -o sou
```
## Usage
```bash
sou
```
Example:
```bash
# Local image
sou nginx:latest
# Remote image
sou ghcr.io/knqyf263/my-image:latest
```
## Key Bindings
### Layer View
- `â/k`: Move cursor up
- `â/j`: Move cursor down
- `â/l`: View layer contents
- `g`: Go to first item
- `G`: Go to last item
- `K/pgup`: Page up
- `J/pgdown`: Page down
- `yy`: Copy layer diff ID
- `/`: Filter layers
- `?`: Toggle help
- `q`: Quit
### File View
- `â/k`: Move cursor up
- `â/j`: Move cursor down
- `â/h`: Go back
- `â/l`: View/open file
- `.`: Toggle hidden files
- `x`: Export file
- `/`: Filter files
- `?`: Toggle help
- `q`: Quit
### File Content View
- `â/k`: Scroll up
- `â/j`: Scroll down
- `â/h`: Go back to file list
- `q`: Quit
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
Apache License 2.0 - see [LICENSE](LICENSE) for more details.