src/index.ts
) and a package.json
manifest file. We add a few more support files when scaffolding an extension to streamline development with modern JavaScript tooling.src
folder. We recommend using TypeScript as a programming language. Our API is fully typed, which helps you catch errors at compile time rather than runtime. ts
, tsx
, js
and jsx
are supported as file extensions. As a rule of thumb, use tsx
or jsx
for commands with a UI.src/index.ts
) per command and a package.json
manifest file holding metadata about the extension and its commands. The format of the manifest file is very similar to that of npm packages. In addition to some of the standard properties, a commands
property describes which commands an extension exposes to Raycast root search and how they are presented.name
that maps to its main entry point file in the src
folder. For example, a command with the name create
in the package.json
file, maps to the file src/create{.ts,.tsx,.js,.jsx}
.assets
folder can contain icons that will be packaged into the extension archive. All bundled assets can be referenced at runtime. Additionally, icons can be used in the package.json
as extension or command icons.npm run lint
. It has recommendations for code style and best practices. Usually, you don't have to edit this file.