Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>FeatifyNew to Visual Studio Code? Get it now.
Featify

Featify

Donny Roufs

|
1 install
| (0) | Free
Browse a codebase by feature, not by folder.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Featify

Map your features. Keep your folders.

Featify is a virtual feature layer for your codebase. You declare which files and symbols belong to each feature in a short YAML manifest, and Featify gives you a feature-first view of the code from your editor, without moving a single file.

Early testing phase. Featify is actively being developed and iterated on. Expect rough edges, breaking changes between versions, and features to come and go. Feedback is welcome while the shape of the tool settles.

What you get

  • Features view in the Explorer. Every feature, expandable into its members. Click a member to jump to it in the real file.
  • Authoring via code actions. Put your cursor on a file, symbol, or selection, open the quick fix menu (Ctrl+. / Cmd+.), and pick one of: Add File to Feature, Add Symbol to Feature, Add Selection to Feature.
  • Drift detection. When a tracked member's content changes, Featify marks the gutter and surfaces a drift indicator above the file. Mark the feature reviewed to walk each drifted member and either accept the new baseline or drop it.
  • Navigate within a feature. Press Ctrl+Alt+L (Cmd+Alt+L on macOS) to jump between members of the active feature.
  • Open as Buffer. Read every member of a feature stitched into one scrollable document.
  • Status bar. Shows which feature the current file belongs to. Click to reveal in the tree.

Getting started

  1. Install the extension.
  2. Open a TypeScript project.
  3. Scaffold a feature with Featify: Create Feature… from the command palette, then use code actions on any file or symbol to add members to it.

You never need to hand-write YAML, but if you want to scaffold a first pass with a coding assistant or look up the schema, full docs live at featify.dev/docs.

Manifest format

name: CreatePost
description: Authoring a new blog post
members:
  - file: app/controllers/posts_controller.ts
    symbol:
      kind: method
      name: store
      parent: PostsController
  - file: app/validators/post.ts
    symbol:
      kind: variable
      name: createPostValidator
  - file: database/migrations/1776127606248_create_posts_table.ts
  - file: app/models/post.ts
    symbol:
      kind: class
      name: Post

Symbol kinds: class, method, function, variable, interface, type. Omit the symbol block to track a whole file. Use lines: [start, end] for snippets that aren't a named symbol.

Configuration

All settings live under the featify.* namespace.

Setting Default Purpose
featify.featuresDir .featify/features Directory containing feature YAML manifests, relative to the workspace root.
featify.tsconfigPath tsconfig.json Path to the tsconfig.json for the project Featify is observing.
featify.driftCodeLens.enabled true Show the drift indicator at the top of files that contain drifted members.
featify.staleDecorations.enabled true Draw the warning gutter next to drifted members.
featify.statusBar.enabled true Show the Featify status bar item with the active feature.
featify.autoActivateSingleFeature true Automatically mark a feature as active when the open file belongs to exactly one.

Links

  • Website: featify.dev
  • Docs: featify.dev/docs
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft