Skip to Content
How-To GuidesGeneralCreating a New Golem Project with `golem new`

Creating a New Golem Project with golem new

Both golem and golem-cli can be used — all commands below work with either binary. The golem binary is a superset that includes a built-in local server.

Usage

Always use non-interactive mode by passing --yes (or -Y) and specifying --template:

golem new --template <LANGUAGE> --yes <APPLICATION_PATH>

Arguments

ArgumentDescription
<APPLICATION_PATH>Directory where the new application is created. The folder name becomes the application name by default.

Required flags

FlagDescription
--template <LANGUAGE>Language template to use. See supported languages below.
--yes / -YNon-interactive mode — automatically accepts all confirmation prompts. Always use this flag.

Optional flags

FlagDescription
--application-name <NAME>Override the application name (defaults to the folder name).
--component-name <NAMESPACE:NAME>Set a specific component name. Must follow namespace:name format. Defaults to a name derived from the application name and language.

Agent skills installed by golem new

Running golem new deploys a large number of agent skills into the new project’s .agents/skills/ and .claude/skills/ directories. Coding agents may not pick up these new skills automatically — you may need to explicitly reload the agent’s skill list (or restart the agent) before the newly installed skills become available.

Supported languages

LanguageTemplate value
Rustrust
TypeScriptts
Effecteffect
Scalascala

Examples

Create a new Rust project:

golem new --template rust --yes my-rust-app

Create a new TypeScript project:

golem new --template ts --yes my-ts-app

Create a new Effect project:

golem new --template effect --yes my-effect-app

Create a new Scala project:

golem new --template scala --yes my-scala-app

Create a project with a custom application name:

golem new --template rust --application-name my-app --yes ./projects/my-app

Create a project with a specific component name:

golem new --template ts --component-name myns:my-component --yes my-app

Component presets (e.g. the release preset in generated Rust projects’ golem.yaml) are not chosen by golem new; select one with -P / --preset when building or deploying:

golem build --yes -P release golem deploy --yes -P release