Emacs Eask
GitHub Discord Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

πŸ”° Quick Start

Using Eask as your Emacs package management tool.

The installation is cross-platform and uses npm. For instructions on how to install Eask using other methods, see the install section.

It is required to have Git installed to run this tutorial.

πŸ” Step 1: Setup NodeJS runtime and npm

Please check out their official site here and install NodeJS and npm corresponds to your current operating system

πŸ’‘ If you don’t prefer NodeJS and npm, you can install with binary from our release page.

πŸ” Step 2: Install Eask

$ npm install -g @emacs-eask/cli

To verify your new installation:

$ eask --version

πŸ” Step 3: Navigate to an existing project or create a new project

If you already have an existing elisp project, navigate to the project root folder.

$ cd /path/to/project/dir/

To create one:

$ eask create package <your-project>

It should create a folder named <your-project> in your current working directory.

πŸ” Step 4: Create Eask-file

Skip this step if you chose to create the project with eask create!

Otherwise, to create Eask-file in the existing project:

$ eask init

You will be asked some questions about the package you are going to create:

package name: (your-project)
version: (1.0.0)
description: Your project description!
entry point: (your-project.el)
emacs version: (26.1)
website: https://example.com/project-url/
keywords: tools example
About to write to /path/to/project/Eask:

(package "your-project"
         "1.0.0"
         "Your project description!")

(website-url "https://example.com/project-url/")
(keywords "tools" "example")

(package-file "your-project.el")

(script "test" "echo \"Error: no test specified\" && exit 1")

(source "gnu")

(depends-on "emacs" "26.1")


Is this OK? (yes) yes ⏎

You should be able to see an Eask file in your project folder. πŸŽ‰πŸŽŠ

πŸ” Step 5: Start the package development

To check your package information, run:

$ eask info

You should be able to see the following information:

your-package (1.0.0) | deps: 0 | devDeps: 0
Your project description!
https://example.com/project-url/

keywords: tools, example

entry: your-package-file.el
kind: single

dist
.total-files: 0
.unpacked-size: 0

From the start, you would not have any dependencies and devDependencies (0 by default)!

πŸ” Step 6: Manage package archives

You can manage package archives by using the source directive in your Eask-file.

(source "gnu")    ; default
(source "melpa")  ; Add package archives
πŸ’‘ See DSL/source for more information!

πŸ” Step 7: Add some dependencies

You can add dependencies by using depends-on directive in your Eask-file.

...

(depends-on "f")
(depends-on "ht")

πŸ’‘ Make sure the dependencies you add are available in the package archives!

Or else you would get an error `package-name-’ is unavailable!

πŸ” Step 8: Install dependencies

Now we can install the dependencies we have specified in the Eask-file:

$ eask install-deps

You should see Eask executed correctly with the similar output below:

Loading package information... done βœ“
Installing 2 package dependencies...

  - [1/2] Installing f (20241003.1131)... done βœ“
  - [2/2] Installing ht (20230703.558)... done βœ“

(Total of 2 dependencies installed, 0 skipped)

πŸ”— See Also