code-breathe

Intelligently groups and sorts code snippets for better readability, consistency, and maintainability.
523
Install
npm install code-breathe
Latest Version:0.0.3
License:MIT
Last Updated:Sep 30, 2026
Links: GitHub  ·  npm
Maintainer: safdar_azeem

code-breathe

Automatic formatting, readable code spacing, and safe Vue/HTML attribute ordering.

Features

  • Vue, JavaScript, TypeScript, JSX/TSX, HTML, CSS, JSON, Markdown, GraphQL, and more
  • Readable blank-line grouping for JS/TS
  • Safe Vue/HTML attribute ordering
  • Prettier + ESLint integration
  • VS Code and Cursor format-on-save
  • CLI and coding-agent friendly
  • Respects existing Prettier, EditorConfig, and ignore settings

Installation

npm install -D code-breathe
yarn add -D code-breathe
pnpm add -D code-breathe

Initialize

npx --no-install code-breathe init

Initialization adds:

  • formatting scripts
  • Prettier and ESLint configuration
  • VS Code / Cursor settings
  • editor format-on-save support
  • managed instructions for Codex, Claude, and Cursor

It does not format your source files or change your dev command.

Format

Specific files

npm run format:files -- src/components/Card.vue src/main.ts

Directory

npm run format:files -- src/components

Glob

npm run format:files -- "src/**/*.vue"

Entire project

npm run format

Check changed files

npm run format:check

Other commands

# Check the entire project
npx --no-install code-breathe check --all

# Check changes against a branch
npx --no-install code-breathe check --base origin/main

# Validate project setup
npx --no-install code-breathe doctor

# Preview initialization
npx --no-install code-breathe init --dry-run

# Initialize without editor settings
npx --no-install code-breathe init --no-editor

# Initialize without agent instructions
npx --no-install code-breathe init --no-agents

How formatting works

code-breathe uses Prettier for standard formatting, then applies readable code grouping and safe Vue/HTML attribute ordering.

JavaScript / TypeScript

Before:

import { computed } from 'vue'
import { useUser } from './user'
const props = defineProps<{ name: string }>()
const user = useUser()
const title = computed(() => props.name)
const open = () => user.open()

After:

import { computed } from 'vue'
import { useUser } from './user'

const props = defineProps<{ name: string }>()

const user = useUser()

const title = computed(() => props.name)

const open = () => user.open()

Vue / HTML attributes

Before:

<Component
  :title="title"
  class="profile-card"
  v-if="visible"
  aria-label="Open profile"
  @click="open"
  id="card"
/>

After:

<Component
  v-if="visible"
  id="card"
  @click="open"
  :title="title"
  class="profile-card"
  aria-label="Open profile"
/>

Safe v-if and v-for directives stay first. Other safe attributes are ordered from shortest to longest.

Risky constructs such as object spreads, dynamic arguments, custom directives, and conflicting attributes keep their original position.

License

MIT

Related Packages

fg-devkit

Shared configs, scripts, and DX tooling for Vue / TypeScript frontend repos

14,112
vue-eslint-standard

quickly start eslint in vue

3,269 1
@vue/eslint-config-prettier

eslint-config-prettier for create-vue

50,414,279 86
@takamachi/eslint-config

ESLint rules for macchiitaka

2,500 0
@somosyampi/eslint-config

Pacote de padronização de código padrão para os projetos Yampi usando Node.js

2,164

Version History

Version Released License
0.0.3 MIT
0.0.2 MIT
0.0.1 ISC