Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.1.2] - 2026-02-11

### Added

- Colored install script output with FLN_SILENT to disable
- Install script validation (version, directory, file size limits)
- PATH detection and shell-specific instructions in install scripts

### Fixed

- Correct gitignore check for directories in scanTree (trailing slash)
- Extend NO_COLOR support to any non-empty value per spec

### Changed

- Replace TypeScript path aliases with relative imports
- CLI entry point moved from `main.ts` to `index.ts`
- Improved error handling with optional DEBUG stack trace
- Install URLs updated to fln.nesvet.dev
- Add `pom.xml` to manifest list in docs

## [1.1.1] - 2026-02-10

### Added
Expand Down Expand Up @@ -41,6 +62,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Cross-platform shell installers with SHA256 verification (macOS, Linux, Windows)
- Comprehensive test suite

[Unreleased]: https://github.com/nesvet/fln/compare/1.1.1...HEAD
[Unreleased]: https://github.com/nesvet/fln/compare/1.1.2...HEAD
[1.1.2]: https://github.com/nesvet/fln/compare/1.1.1...1.1.2
[1.1.1]: https://github.com/nesvet/fln/compare/1.0.0...1.1.1
[1.0.0]: https://github.com/nesvet/fln/releases/tag/1.0.0
29 changes: 17 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ npx fln . -o codebase.md

Works with **Claude**, **ChatGPT**, **Gemini**, **Grok**, **Cursor**, **Copilot**, and *any* AI tool.

**`fln`** (short for *flatten*) is **language-agnostic** by design: TypeScript, Python, Java, Go, Rust, Bash, SQL, mixed monorepos — it treats everything as plain text, detects project metadata from common manifests (`package.json`, `pyproject.toml`, `go.mod`, `Cargo.toml`, `CMakeLists.txt`, `vcpkg.json`), respects `.gitignore`, and skips binaries by default.
**`fln`** (short for *flatten*) is **language-agnostic** by design: TypeScript, Python, Java, Go, Rust, Bash, SQL, mixed monorepos — it treats everything as plain text, detects project metadata from common manifests (`package.json`, `pyproject.toml`, `pom.xml`, `go.mod`, `Cargo.toml`, `CMakeLists.txt`, `vcpkg.json`), respects `.gitignore`, and skips binaries by default.

## Why fln exists

Expand Down Expand Up @@ -80,17 +80,23 @@ Zero dependencies on external services. Zero tracking. Just a tool that does its

## Install

##### npm
```bash
# npm
npm install -g fln
```

# one-liner (macOS/Linux)
curl -fsSL "https://raw.githubusercontent.com/nesvet/fln/main/install.sh" | sh
##### Linux & macOS ([view install script](./install.sh))
```bash
curl -fsSL https://fln.nesvet.dev/install | sh
```

# one-liner (Windows)
irm "https://raw.githubusercontent.com/nesvet/fln/main/install.ps1" | iex
##### Windows ([view install script](./install.ps1))
```bash
powershell -c "irm fln.nesvet.dev/install.ps1 | iex"
```

# or just run without installing
##### Or just run without installing
```bash
npx fln . -o codebase.md
```

Expand All @@ -102,23 +108,22 @@ npx fln . -o codebase.md
Pin a version or custom install directory:

```bash
curl -fsSL "https://raw.githubusercontent.com/nesvet/fln/main/install.sh" | FLN_VERSION="<version>" INSTALL_DIR="$HOME/.local/bin" sh
curl -fsSL "https://fln.nesvet.dev/install" | FLN_VERSION="<version>" INSTALL_DIR="$HOME/.local/bin" sh
```

### One-line installer options (Windows PowerShell)

```powershell
$env:FLN_VERSION = "<version>"
$env:INSTALL_DIR = "$env:LOCALAPPDATA\\fln\\bin"
irm "https://raw.githubusercontent.com/nesvet/fln/main/install.ps1" | iex
powershell -c "irm fln.nesvet.dev/install.ps1 | iex"
```

### Manual download (GitHub Releases)

```bash
curl -L "https://github.com/nesvet/fln/releases/latest/download/fln-macos-x64.tar.gz" | tar -xz -C /usr/local/bin
chmod +x /usr/local/bin/fln
fln --help
```

</details>
Expand Down Expand Up @@ -169,7 +174,7 @@ fln . -o codebase.md -w
- `--follow-symlinks` Follow symlinks
- `--no-ansi` Disable ANSI colors
- `--no-sponsor-message` Hide support message (also: `FLN_NO_SPONSOR=1`)
- `--generated-date <date>` Use this date in the "Generated" header (format: `YYYY-MM-DD HH:mm`)
- `--generated-date <date>` Use this date in the Generated header (format: `YYYY-MM-DD HH:mm`)
- `--banner <text>` Add text at the beginning
- `--footer <text>` Add text at the end of the output
- `-q, --quiet` Minimal output
Expand Down Expand Up @@ -288,7 +293,7 @@ All CLI options are available via `FlnOptions`.
<details>
<summary>Output naming & formats</summary>

- Uses project name + version if available (`package.json`, `pyproject.toml`, `Cargo.toml`, `vcpkg.json`, `go.mod`, or `CMakeLists.txt`)
- Uses project name + version if available (`package.json`, `pyproject.toml`, `pom.xml`, `go.mod`, `Cargo.toml`, `CMakeLists.txt` or `vcpkg.json`)
- `md` includes tree + contents
- `json` includes `rootDirectory`, `tree`, `stats`

Expand Down
2 changes: 1 addition & 1 deletion examples/go-app.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- 🥞 fln 1.1.1 -->
<!-- 🥞 fln 1.1.2 -->

# Codebase Snapshot: go-app

Expand Down
2 changes: 1 addition & 1 deletion examples/java-app.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- 🥞 fln 1.1.1 -->
<!-- 🥞 fln 1.1.2 -->

# Codebase Snapshot: java-app

Expand Down
2 changes: 1 addition & 1 deletion examples/python-app.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- 🥞 fln 1.1.1 -->
<!-- 🥞 fln 1.1.2 -->

# Codebase Snapshot: python-app

Expand Down
2 changes: 1 addition & 1 deletion examples/rust-app.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- 🥞 fln 1.1.1 -->
<!-- 🥞 fln 1.1.2 -->

# Codebase Snapshot: rust-app

Expand Down
2 changes: 1 addition & 1 deletion examples/ts-app.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- 🥞 fln 1.1.1 -->
<!-- 🥞 fln 1.1.2 -->

# Codebase Snapshot: ts-app

Expand Down
Loading