projectile 
- Description
- Manage and navigate projects in Emacs easily
- Latest
- projectile-3.3.0.tar (.sig), 2026-Jul-27, 900 KiB
- Maintainer
- Bozhidar Batsov <bozhidar@batsov.dev>
- Website
- https://github.com/bbatsov/projectile
- Browse ELPA's repository
- CGit or Gitweb
- All Dependencies
- compat (.tar)
- Badge
To install this package from Emacs, use package-install or list-packages.
Full description
Projectile is a project interaction library for Emacs. It provides a powerful set of features operating at the project level, as well as simple heuristics to identify projects. See the README and https://docs.projectile.mx for more details.
Old versions
| projectile-3.2.1.tar.lz | 2026-Jul-13 | 148 KiB |
| projectile-3.2.0.tar.lz | 2026-Jul-12 | 148 KiB |
| projectile-3.1.0.tar.lz | 2026-Jul-04 | 120 KiB |
| projectile-3.0.0.tar.lz | 2026-Jul-01 | 93.5 KiB |
| projectile-2.9.1.tar.lz | 2025-Feb-13 | 61.7 KiB |
| projectile-2.9.0.tar.lz | 2025-Feb-12 | 61.5 KiB |
| projectile-2.8.0.tar.lz | 2024-Mar-31 | 59.6 KiB |
| projectile-2.7.0.tar.lz | 2022-Nov-22 | 58.2 KiB |
| projectile-2.6.0.tar.lz | 2022-Oct-25 | 56.6 KiB |
| projectile-2.5.0.tar.lz | 2021-Aug-11 | 63.0 KiB |
News
Changelog
3.3.0 (2026-07-27)
New features
- #1867: Add
projectile-per-command-compilation-buffer, so compiling, testing and running a project no longer overwrite each other's output (*compilation*<test>). - #2121: Recognize the subprojects of a monorepo:
projectile-find-file-in-subproject(s-p c m f) scopes file completion to one part of the repository,projectile-project-subprojectslists them, and the subproject lifecycle commands now work in any project rather than only where the module's manifest matches the project's own type (projectile-subproject-markers). - #2120:
projectile-run-tasknow also offers the tasks a project's own tooling defines - npm scripts, Deno tasks, Composer scripts, just recipes, go-task tasks and Make targets - named after the tool that defines them (npm:build) and switched off withprojectile-discover-tasks. - #2119: Add 34 project types that used to come out as generic projects:
node(apackage.jsonwith no lock file),bun,deno,nx,turborepo,python-uv,python-pdm,php-composer,php-laravel,xcode,flutter,terraform,pulumi,helm,ansible,docker-compose,just,mise,buck2,pants,gleam,babashka,scala-cli,dub,fpm,alire,foundry,godot,platformio,hugo,jekyll,zola,mkdocsandquarto. - #2119: A project type marker can now be an
(:any "file1" "file2")clause, so a build file with several spellings no longer needs a predicate function. - #2115: Add
projectile-replace-undo(s-p u), which reverts the last replace applied from the reviewable replace buffer, leaving alone any file whose replaced text has changed since. - #2114: Add project-scoped bookmarks -
projectile-bookmark-set(s-p B s),projectile-bookmark-jump(s-p B j) andprojectile-bookmark-delete(s-p B d) - which are plain Emacs bookmarks with the completion scoped to the current project (seeprojectile-bookmark-scope). - #2113: Add
projectile-todos(s-p s t), which collects the project'sTODO/FIXME-style annotations (projectile-todo-keywords) into the reviewable search buffer. - #2112: Add
projectile-dashboard(s-p P), a buffer summarising the current project - name, root, type, file count, branch and working tree status, most-visited files, tasks and lifecycle commands, each of them a button - which also works as aprojectile-switch-project-action. - #2111: Add
projectile-doctor(s-p H), which reports how Projectile sees the current project - root, type, indexing method and command, available tools, cache state and effective ignore rules - and ends with a list of concrete suggestions. - #2104: Alien indexing now honors Projectile's ignore rules, which it previously skipped entirely, by pushing them into the external tool.
- Alien projects will list fewer files than before; set
projectile-alien-honors-ignoresto nil for the old behavior. - Tools that can't express exclusions (svn, fossil, bzr, darcs, pijul, plain
find) are filtered in Emacs Lisp instead, and dirconfig+keep entries stayhybrid/nativeonly.
- Alien projects will list fewer files than before; set
- #2096: Add an optional Embark/Marginalia integration, wired via
with-eval-after-loadso neither package becomes a dependency. ... ...