High-level Features

Run in docker

Palm and docker are like peas in a pod. Docker containers allow us to run our commands in a sandboxed environment that is isolated from the rest of the system and is a close reflection of our production and CI environments. Docker ensures that everyone on your team is using a consistent OS and set of dependencies. We’re not here to sell you on Docker, and we don’t expect you to be a Docker pro, but you will need Docker in order to work with Palm.

Local commands

Palm allows you to define commands within each of your projects, and then share them across your team. Once you have set up your project to use Palm, you can create new commands in the .palm directory, add these to version control and they will be available to everyone on your team when they run palm.

See the Commands section for more information.

Code generation

Palm includes code generation functionality, powered by jinja. Code generation allows you to automate repetitive boiler plating tasks, and keep your codebase consistent. Code generation is driven by the environment.generate() function.

See the Code generation section for more information.

Plugins

Palm is extensible. You can install plugins that extend the functionality of Palm. Adding commands for specific frameworks or project types is a common use case. Once installed, plugins must be configured for use with your project.

See the Plugins section for more information.