Skills
Chapter 9 of 28
Bootstrap a brand-new Encore.ts project from zero. Only for first-time CLI install and encore app create — not for architecture or feature questions.
1 minute · 136 words · 13 sections
# macOS
brew install encoredev/tap/encore
# Linux/WSL
curl -L https://encore.dev/install.sh | bash
# Windows (PowerShell)
iwr https://encore.dev/install.ps1 | iex# Interactive - choose from templates
encore app create my-app
# Or start with a blank app
encore app create my-app --example=ts/hello-worldA minimal Encore.ts app:
my-app/
├── encore.app # App configuration
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
├── encore.service.ts # Service definition
└── api.ts # API endpoints// encore.app
{
"id": "my-app"
}This file marks the root of your Encore app. The id is your app’s unique identifier.
Create encore.service.ts to define a service:
// encore.service.ts
import { Service } from "encore.dev/service";
export default new Service("my-service");// api.ts
import { api } from "encore.dev/api";
interface HelloResponse {
message: string;
}
export const hello = api(
{ method: "GET", path: "/hello", expose: true },
async (): Promise<HelloResponse> => {
return { message: "Hello, World!" };
}
);# Start the development server
encore run
# Your API is now available at http://localhost:4000# Opens the local development dashboard
encore run
# Then visit http://localhost:9400The dashboard shows:
| Command | Description |
|---|---|
encore run | Start the local development server |
encore test | Run tests |
encore db shell <db> | Open a psql shell to a database |
encore gen client | Generate API client code |
encore app link | Link to an existing Encore Cloud app |
// db.ts
import { SQLDatabase } from "encore.dev/storage/sqldb";
const db = new SQLDatabase("mydb", {
migrations: "./migrations",
});Create a migration:
-- migrations/1_create_table.up.sql
CREATE TABLE items (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);encore-api skill)encore-auth skill)encore-pubsub), cron jobs (encore-cron), buckets (encore-bucket), secrets (encore-secret), or caching (encore-cache)encore app link then git push encoreInstall this repository
npx skills add encoredev/skills/plugin marketplace add encoredev/skillsSkills install per repository, not per chapter — the CLI has no documented per-skill form, so we do not print one.
Bootstrap a brand-new Encore.ts project from zero. Only for first-time CLI install and `encore app create` — not for architecture or feature questions.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 15 May 2026.SKILL.md, not by matching a directory convention. One layout observed: encore/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by Encore, declaring 1 plugin. It is read for editorial metadata only — never as the skill index, which is always the repository tree./encoredev/skills.md, and each chapter at its own .md URL.