pinecallDocs
Running an agent / pinecall new

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.

Terminal
$ 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