pinecall new
A new project of one agent, in TypeScript, Ruby or Python.
pinecall new <name> [--typescript | --ruby | --python]
A project of one agent in ./<name>/, in the layout every verb reads: the class under
agents/<name>/ — a receptionist that answers from the documents it is given and otherwise takes a
message with one tool — its ring-0 test, one golden under test/<name>/goldens/, a .gitignore
that keeps .env and .pinecall/ out, and the toolchain: package.json, tsconfig.json and
vitest.config.ts for TypeScript (the default), a Gemfile and a Rakefile for --ruby, with
the view in agents/<name>/views/<name>.erb, a pyproject.toml for --python (uv, pytest), with
the view in agents/<name>/views/<name>.jinja. A project depends on its language's SDK and on
nothing else: @pinecall/agents at the version this CLI is released with, the pinecall gem, or
the pinecall package. The CLI is never a dependency of the project.
The name is the agent's slug — lowercase letters, digits and dashes, starting with a letter — and the folder must not exist or must be empty. It writes files and nothing else: no key, no install, no gateway. It prints the commands that come next.
$ pinecall new front-desk --ruby
▸ front-desk · a Ruby agent
cd front-desk
bundle install
pinecall link sign in, pick the org: its key goes to .env
pinecall chat talk to it here
pinecall test its goldens, against a real model
pinecall start answer calls