Skip to content

feat(init): add feluda init subcommand for zero-friction onboarding#214

Merged
anistark merged 1 commit into
mainfrom
feat/cli-init
May 20, 2026
Merged

feat(init): add feluda init subcommand for zero-friction onboarding#214
anistark merged 1 commit into
mainfrom
feat/cli-init

Conversation

@anistark
Copy link
Copy Markdown
Owner

Introduces feluda init, which auto-detects the project language and license, then generates two config files:

  • .feluda.toml — restrictive license list (GPL-3.0, AGPL-3.0, LGPL-3.0, MPL-2.0, CC-BY-SA-4.0, EPL-2.0) with commented-out dependencies.ignore scaffolding.
  • .pre-commit-config.yaml — a language: system hook that runs feluda --fail-on-restrictive on every commit. If the file already exists the hook is appended rather than overwriting it.

Language detection covers 12 ecosystems (Rust, Node.js, Python, Go, Java/Maven, Java/Gradle, C, C++, C#/.NET, R, PHP, Ruby) via project-file heuristics. --force skips all interactive prompts; --no-pre-commit omits the YAML entirely.

Usage:

feluda init                    # interactive
feluda init --force            # no prompts, overwrite existing
feluda init --no-pre-commit    # skip .pre-commit-config.yaml
feluda init --path ./myproject

Introduces `feluda init`, which auto-detects the project language and
license, then generates two config files:

- `.feluda.toml` — restrictive license list (GPL-3.0, AGPL-3.0,
  LGPL-3.0, MPL-2.0, CC-BY-SA-4.0, EPL-2.0) with commented-out
  `dependencies.ignore` scaffolding.
- `.pre-commit-config.yaml` — a `language: system` hook that runs
  `feluda --fail-on-restrictive` on every commit. If the file already
  exists the hook is appended rather than overwriting it.

Language detection covers 12 ecosystems (Rust, Node.js, Python, Go,
Java/Maven, Java/Gradle, C, C++, C#/.NET, R, PHP, Ruby) via
project-file heuristics. `--force` skips all interactive prompts;
`--no-pre-commit` omits the YAML entirely.

Usage:

    feluda init                    # interactive
    feluda init --force            # no prompts, overwrite existing
    feluda init --no-pre-commit    # skip .pre-commit-config.yaml
    feluda init --path ./myproject
@anistark anistark merged commit e8f082a into main May 20, 2026
3 checks passed
@anistark anistark deleted the feat/cli-init branch May 20, 2026 04:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant