Skip to content

Get started ​

This journey opens a job: create a new project, take over a project that already exists, or connect Effortless to your agent. You come here once per project, or once per machine for the deployment.

What you ask the agent ​

💬 You ask your agent

« Create an Effortless project here, with the tauri-react-tailwind model. »

→ The agent callseffortless_init
  • model_id = tauri-react-tailwind
💬 You ask your agent

« Which stack models exist? Show me the detail of rust. »

→ The agent callseffortless_stack_model_list
💬 You ask your agent

« This repository already exists: prepare its migration to Effortless, without writing anything for now. »

→ The agent callseffortless_migrate_init
  • confirm = false
💬 You ask your agent

« Apply the migration. »

→ The agent callseffortless_migrate_apply
  • dry_run = false
💬 You ask your agent

« Bring this project up to date with the current Effortless version. »

→ The agent callseffortless_migrate
  • confirm = true
💬 You ask your agent

« Move the root code into codebase/. »

→ The agent callseffortless_codebase_relocate
  • dry_run = false
💬 You ask your agent

« Deploy Effortless into my agents. »

→ The agent callseffortless_deploy

What the agent does ​

Create a new project ​

  1. effortless_stack_model_list lists the available models (usable before any project).
  2. effortless_stack_model_show details one model: variables, build strategy, test/lint/run cycle. Parameter: model_id.
  3. effortless_init creates the project in the current directory. It passes model_id to apply the model (folder tree and standards under .ai/ndd/), and can pass project_name, description, context (greenfield, existing or migration). It also writes AGENTS.md and CLAUDE.md (see With an agent).

Take over an existing project ​

  1. effortless_migrate_init analyzes the repository. With confirm: false (default) it is a preview that writes nothing; with confirm: true it writes the configuration, an epic, a story and migration_plan.json.
  2. effortless_migrate_apply carries out the moves in the plan. With dry_run: true it is an audit; with dry_run: false it really moves the files and writes migration_report.md.
  3. effortless_codebase_relocate, if you want it, moves the root code under codebase/<stack>/. dry_run defaults to true.

Bring a project up to date ​

effortless_migrate replays the migrations up to the current schema. confirm: false (default) shows what would be done; confirm: true applies it, with .bak backups. The old verbs effortless_migrate_nomenclature and effortless_migrate_state are deprecated: they are aliases of effortless_migrate.

Deploy ​

effortless_deploy installs the server in your clients, the global guide and, for Claude Code, the status bar (see With an agent). targets limits the clients, scope chooses user (default) or a project, grant_permissions: true also sets the server's permissions. It is an action on your machine: the agent runs it when you ask.

What you get ​

  • A project with effortless.json, .effortless/, the model's folder tree and, if the model carries any, the standards under .ai/ndd/.
  • AGENTS.md and CLAUDE.md at the root.
  • For a takeover: migration_plan.json, then migration_report.md once the plan is applied.
  • On screen: the project opens from the workspace picker (Open a workspace); the deployment shows in Preferences › MCP & Skills (Profile and preferences).

When the agent is refused ​

SituationWhat the refusal saysWhat to do
A project verb is called outside a projectmcp:racineProjetIntrouvableSet EFFORTLESS_PROJECT in the server configuration if the project exists elsewhere; otherwise effortless_init creates one here.
EFFORTLESS_PROJECT points to a folder with no projectmcp:projetInexistantALEndroitDeclareCall effortless_init there: your configuration is not at fault.
effortless_init on an already initialized foldercreate:alreadyExistsPass force: true to overwrite, or pick another directory.
effortless_init with an unknown model_idcreate:modelUnknowneffortless_stack_model_list names the available models. Nothing is written.
effortless_init with a name made of spacescreate:blankNamePass a project_name with at least one non-blank character.
effortless_migrate_init on an already initialized projectadopt:alreadyInitializedPass force: true (a .bak backup is written).
effortless_migrate_apply with no planadopt:planNotFoundeffortless_migrate_init writes the migration plan.
effortless_stack_model_show with an unknown model"model … not found" message, no codeeffortless_stack_model_list gives the valid ids.
effortless_codebase_relocate in semi-auto modenot a refusal: the reply carries gated: true and no movesSwitch the project to full mode with effortless_mode_set.

init with force: true also empties .effortless/epics/, backlog.json and state.json: the agent only does it at your explicit request.

Effortless — ArboRithm