Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Important notice

I recently took over maintaining this project. I actively use this package with GNU Emacs 28.2 and poetry 1.2.0 on macOS. I’ll look into testing different versions and operating systems via CI soon.


Poetry in Emacs.

From Poetry documentation: “Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.”

Poetry.el is a wrapper around Poetry, offering a simple an intuitive interface in Emacs.


From Melpa

Poetry.el is available on Melpa, the most straightforward way of installing it is to use use-package:

(use-package poetry
 :ensure t)


  1. Dependencies

    Poetry.el needs transient and pyvenv to be installed. These packages are both available on MELPA.

  2. Clone the poetry.el repository:
    $ git clone /path/to/poetry.el
  3. Add the following lines to .emacs.el (or equivalent):
    (add-to-list 'load-path "/path/to/poetry.el")
    (require 'poetry)


Poetry.el uses transient to provide a magit-like interface. The entry point is simply:

M-x poetry

The interface should then be pretty much self-explanatory for poetry users:


For users not familiar with how Poetry works, the documentation is a great place to start.

Tracking Poetry virtualenv

Poetry.el also provides a global minor mode that automatically activate the correct virtualenv when visiting Poetry project files. You can activate this feature with:

M-x poetry-tracking-mode

By default, poetry.el checks if the virtualenv needs to be updated after every command. It has the advantage of always providing the right virtualenv, but can be annoyingly slow. You can change the strategy poetry.el uses through the poetry-tracking-strategy.