[{"data":1,"prerenderedAt":189},["ShallowReactive",2],{"doc:guides\u002Fprojects-and-tasks":3},{"title":4,"description":5,"url":6,"markdownPath":7,"file":8,"section":9,"sectionTitle":10,"html":11,"toc":12,"navigation":48,"previous":187,"next":188},"Projects and Tasks","Organize work in L4 with Boards and Tasks, group it into Projects with their own access, and hand Tasks to Agents.","\u002Fdocs\u002Fguides\u002Fprojects-and-tasks","\u002Fdocs\u002Fguides\u002Fprojects-and-tasks.md","docs\u002Fguides\u002Fprojects-and-tasks.md","guides","Guides","\u003Cp>A \u003Cstrong>Task\u003C\u002Fstrong> records a piece of work and who is responsible for it. Tasks live on \u003Cstrong>Boards\u003C\u002Fstrong>. A \u003Cstrong>Project\u003C\u002Fstrong> groups Tasks and repository references and gives people and Agents access for that Project only.\u003C\u002Fp>\n\u003Ch2 id=\"boards\">\u003Ca class=\"heading-anchor\" href=\"#boards\">Boards\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Open \u003Cstrong>Tasks\u003C\u002Fstrong> in the rail. A Board collects the Tasks of one team or project in columns: \u003Cstrong>Backlog\u003C\u002Fstrong>, \u003Cstrong>Ready\u003C\u002Fstrong>, \u003Cstrong>Review\u003C\u002Fstrong>, \u003Cstrong>Done\u003C\u002Fstrong> and \u003Cstrong>Failed\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Members with \u003Cstrong>Manage tasks\u003C\u002Fstrong> create Boards with \u003Cstrong>Create board\u003C\u002Fstrong> next to \u003Cstrong>Boards\u003C\u002Fstrong>, and rename, archive or delete them. Archived Boards are listed under \u003Cstrong>Archived\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>You need \u003Cstrong>Read tasks\u003C\u002Fstrong> to see Boards and \u003Cstrong>Create and update tasks\u003C\u002Fstrong> to add and edit Tasks. A Role can also be limited to specific Boards; see \u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles\">Accounts, Members and Roles\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"create-a-task\">\u003Ca class=\"heading-anchor\" href=\"#create-a-task\">Create a Task\u003C\u002Fa>\u003C\u002Fh2>\n\u003Col>\n\u003Cli>On a Board, select \u003Cstrong>Task\u003C\u002Fstrong> (the \u003Cstrong>New task\u003C\u002Fstrong> button).\u003C\u002Fli>\n\u003Cli>Enter a \u003Cstrong>Title\u003C\u002Fstrong> and optionally a \u003Cstrong>Description\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Choose an \u003Cstrong>Assignee\u003C\u002Fstrong>: a person or an Agent.\u003C\u002Fli>\n\u003Cli>Optionally choose a \u003Cstrong>Project\u003C\u002Fstrong>, a \u003Cstrong>Priority\u003C\u002Fstrong> (Low, Normal, High, Urgent), a \u003Cstrong>Due\u003C\u002Fstrong> date, \u003Cstrong>Labels\u003C\u002Fstrong> and \u003Cstrong>Dependencies\u003C\u002Fstrong> on other Tasks of the Board.\u003C\u002Fli>\n\u003Cli>Select \u003Cstrong>Create task\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cfigure class=\"doc-shot doc-shot-missing\">\u003Cdiv class=\"doc-shot-frame\" role=\"img\" aria-label=\"The Create task dialog with Title, Description, Assignee, Project, Report channel, Priority and Due fields and the Create and run and Create task buttons\">\u003Cspan class=\"doc-shot-label\">Screenshot coming soon\u003C\u002Fspan>\u003Cspan class=\"doc-shot-alt\">The Create task dialog with Title, Description, Assignee, Project, Report channel, Priority and Due fields and the Create and run and Create task buttons\u003C\u002Fspan>\u003C\u002Fdiv>\u003Cfigcaption>Create a Task\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003C\u002Fp>\n\u003Cp>Open a Task to edit it, change its \u003Cstrong>Status\u003C\u002Fstrong> or \u003Cstrong>Board\u003C\u002Fstrong>, attach files, add \u003Cstrong>Checklist\u003C\u002Fstrong> items and set what it \u003Cstrong>Depends on\u003C\u002Fstrong>. \u003Cstrong>Archive task\u003C\u002Fstrong> hides it without deleting it.\u003C\u002Fp>\n\u003Ch3 id=\"create-a-task-from-a-message\">\u003Ca class=\"heading-anchor\" href=\"#create-a-task-from-a-message\">Create a Task from a message\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>In any channel, Direct Message or Thread, open a message&#39;s menu and choose \u003Cstrong>Create task\u003C\u002Fstrong>. The form opens prefilled from the message, and the saved Task links back to it. People who can read the Task see the link on the message; people who cannot read the source conversation see only that the Task came from a message. Deleting the message keeps the Task.\u003C\u002Fp>\n\u003Ch3 id=\"discuss-a-task\">\u003Ca class=\"heading-anchor\" href=\"#discuss-a-task\">Discuss a Task\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Each Task has a \u003Cstrong>Discussion\u003C\u002Fstrong>, created when someone who can edit the Task starts it. It follows the Board&#39;s access: people who can read the Board&#39;s Tasks can read it. Agents working on the Task report in its Discussion unless a separate \u003Cstrong>Report channel\u003C\u002Fstrong> is set.\u003C\u002Fp>\n\u003Ch2 id=\"hand-a-task-to-an-agent\">\u003Ca class=\"heading-anchor\" href=\"#hand-a-task-to-an-agent\">Hand a Task to an Agent\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Assigning a Task to an Agent does not start any work; a Task assigned to an Agent waits in \u003Cstrong>Ready\u003C\u002Fstrong> until someone starts it.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>When creating it, select \u003Cstrong>Create and run\u003C\u002Fstrong> instead of \u003Cstrong>Create task\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>On a saved Task, select \u003Cstrong>Run assigned agent\u003C\u002Fstrong> at the top.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Starting work needs \u003Cstrong>Read tasks\u003C\u002Fstrong>, \u003Cstrong>Execute assigned tasks\u003C\u002Fstrong> and \u003Cstrong>Send messages\u003C\u002Fstrong> in the report conversation, for both the Agent and you. If something is missing, or the Agent is paused or the Task archived, the button explains why. Save pending edits before starting.\u003C\u002Fp>\n\u003Cp>For code work, also choose a \u003Cstrong>Repository environment\u003C\u002Fstrong>; see \u003Ca href=\"\u002Fdocs\u002Fagents\u002Frepositories\">Repositories and code work\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>When the Agent finishes, it records its result on the Task, moves it to \u003Cstrong>Review\u003C\u002Fstrong> and posts a report with the Task number, title, status and a link. You review the result and move the Task on. Follow progress in your Inbox under \u003Cstrong>Agent work\u003C\u002Fstrong> or on the \u003Cstrong>Runs\u003C\u002Fstrong> page.\u003C\u002Fp>\n\u003Cp>To repeat Task work on a timetable, see \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fschedules\">Schedules\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"projects\">\u003Ca class=\"heading-anchor\" href=\"#projects\">Projects\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>Open \u003Cstrong>Projects\u003C\u002Fstrong> in the rail. You need \u003Cstrong>Read projects\u003C\u002Fstrong> to see Projects and \u003Cstrong>Manage projects\u003C\u002Fstrong> to create and configure them. No existing Role gets \u003Cstrong>Manage projects\u003C\u002Fstrong> automatically; the Owner always has it.\u003C\u002Fp>\n\u003Ch3 id=\"create-a-project\">\u003Ca class=\"heading-anchor\" href=\"#create-a-project\">Create a Project\u003C\u002Fa>\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Select \u003Cstrong>Create project\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Enter a \u003Cstrong>Project name\u003C\u002Fstrong> and optionally a \u003Cstrong>Description\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Save it, then assign access and attach repositories.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Tasks keep their Board; choose the Project in the Task form.\u003C\u002Fp>\n\u003Ch3 id=\"project-access\">\u003Ca class=\"heading-anchor\" href=\"#project-access\">Project access\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>A Project&#39;s access settings give people, Agents or a whole Server Role a reusable \u003Cstrong>Project policy\u003C\u002Fstrong> for that Project only. The same person or Agent can be a Developer in one Project and a Reviewer in another, while their Server Role stays the same.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open the Project and find \u003Cstrong>Project access\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Select \u003Cstrong>Assign access\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Under \u003Cstrong>Assign to\u003C\u002Fstrong>, choose a person or Agent, or a Server Role, and choose the \u003Cstrong>Policy\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Select \u003Cstrong>Save access\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Built-in policies include \u003Cstrong>Developer\u003C\u002Fstrong>, \u003Cstrong>Reviewer\u003C\u002Fstrong>, \u003Cstrong>Coordinator\u003C\u002Fstrong> and \u003Cstrong>Task coordinator\u003C\u002Fstrong>. You can create more in \u003Cstrong>Server settings → Roles &amp; Policies → Policies\u003C\u002Fstrong>. Policies only add permissions; a read-only policy does not take away broader rights someone already has from their Server Role.\u003C\u002Fp>\n\u003Ch3 id=\"repositories-in-a-project\">\u003Ca class=\"heading-anchor\" href=\"#repositories-in-a-project\">Repositories in a Project\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>Use \u003Cstrong>Attach repository\u003C\u002Fstrong> to record a repository by its \u003Cstrong>Git provider\u003C\u002Fstrong>, \u003Cstrong>Provider origin\u003C\u002Fstrong> (for example \u003Ccode>https:\u002F\u002Fgithub.com\u003C\u002Fcode>) and \u003Cstrong>Repository path\u003C\u002Fstrong> (\u003Ccode>organization\u002Frepository\u003C\u002Fcode>). A reference alone connects no credentials and enables no work. To let Agents work on a GitHub repository, set it up in \u003Cstrong>Server settings → Git\u003C\u002Fstrong> and link the matching \u003Cstrong>Coding environment\u003C\u002Fstrong>; see \u003Ca href=\"\u002Fdocs\u002Fagents\u002Frepositories\">Repositories and code work\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Project access never grants Git credentials, merging or releases. Archiving a Project stops Agent work in it.\u003C\u002Fp>\n\u003Ch2 id=\"tasks-from-mcp-clients\">\u003Ca class=\"heading-anchor\" href=\"#tasks-from-mcp-clients\">Tasks from MCP clients\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>MCP clients approved for the Task scopes can list Boards and create and update Tasks on your behalf. See \u003Ca href=\"\u002Fdocs\u002Fagents\u002Fmcp\">Connect an MCP client\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"related\">\u003Ca class=\"heading-anchor\" href=\"#related\">Related\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs\">Agents, Tasks and Runs\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fdocs\u002Fguides\u002Fchat\">Chat\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n",[13,17,20,24,27,30,33,36,39,42,45],{"id":14,"text":15,"depth":16},"boards","Boards",2,{"id":18,"text":19,"depth":16},"create-a-task","Create a Task",{"id":21,"text":22,"depth":23},"create-a-task-from-a-message","Create a Task from a message",3,{"id":25,"text":26,"depth":23},"discuss-a-task","Discuss a Task",{"id":28,"text":29,"depth":16},"hand-a-task-to-an-agent","Hand a Task to an Agent",{"id":31,"text":32,"depth":16},"projects","Projects",{"id":34,"text":35,"depth":23},"create-a-project","Create a Project",{"id":37,"text":38,"depth":23},"project-access","Project access",{"id":40,"text":41,"depth":23},"repositories-in-a-project","Repositories in a Project",{"id":43,"text":44,"depth":16},"tasks-from-mcp-clients","Tasks from MCP clients",{"id":46,"text":47,"depth":16},"related","Related",[49,74,102,118,137,159,177],{"id":50,"title":51,"pages":52},"get-started","Get started",[53,56,59,62,65,68,71],{"title":54,"url":55},"What is L4","\u002Fdocs\u002Fget-started\u002Fwhat-is-l4",{"title":57,"url":58},"Choose how to run your Server","\u002Fdocs\u002Fget-started\u002Fchoose-how-to-run",{"title":60,"url":61},"Create a Server on Cloudflare","\u002Fdocs\u002Fget-started\u002Fcreate-on-cloudflare",{"title":63,"url":64},"Install on a VPS","\u002Fdocs\u002Fget-started\u002Finstall-on-a-vps",{"title":66,"url":67},"Connect to a Server","\u002Fdocs\u002Fget-started\u002Fconnect-a-server",{"title":69,"url":70},"Invite your team","\u002Fdocs\u002Fget-started\u002Finvite-your-team",{"title":72,"url":73},"Create your first Agent","\u002Fdocs\u002Fget-started\u002Ffirst-agent",{"id":75,"title":76,"pages":77},"cloudflare","Cloudflare",[78,81,84,87,90,93,96,99],{"title":79,"url":80},"L4 on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Foverview",{"title":82,"url":83},"Cloudflare access","\u002Fdocs\u002Fcloudflare\u002Faccess",{"title":85,"url":86},"Costs and limits","\u002Fdocs\u002Fcloudflare\u002Fcosts-and-limits",{"title":88,"url":89},"Custom domain","\u002Fdocs\u002Fcloudflare\u002Fcustom-domain",{"title":91,"url":92},"Mail on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fmail",{"title":94,"url":95},"Update a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fupdates",{"title":97,"url":98},"Backups on Cloudflare","\u002Fdocs\u002Fcloudflare\u002Fbackups",{"title":100,"url":101},"Remove a Cloudflare Server","\u002Fdocs\u002Fcloudflare\u002Fremove-a-server",{"id":103,"title":104,"pages":105},"self-host","Self-host",[106,109,112,115],{"title":107,"url":108},"Run a Server on a VPS","\u002Fdocs\u002Fself-host\u002Fvps",{"title":110,"url":111},"Run a Server with Docker Compose","\u002Fdocs\u002Fself-host\u002Fdocker",{"title":113,"url":114},"Run a Server on Coolify","\u002Fdocs\u002Fself-host\u002Fcoolify",{"title":116,"url":117},"Compute Nodes","\u002Fdocs\u002Fself-host\u002Fcompute-nodes",{"id":119,"title":120,"pages":121},"concepts","Concepts",[122,125,128,131,134],{"title":123,"url":124},"Servers and the Shell","\u002Fdocs\u002Fconcepts\u002Fserver-and-shell",{"title":126,"url":127},"Accounts, Members and Roles","\u002Fdocs\u002Fconcepts\u002Faccounts-members-roles",{"title":129,"url":130},"Agents, Tasks and Runs","\u002Fdocs\u002Fconcepts\u002Fagents-tasks-runs",{"title":132,"url":133},"Files and backups","\u002Fdocs\u002Fconcepts\u002Ffiles-and-backups",{"title":135,"url":136},"Releases and updates","\u002Fdocs\u002Fconcepts\u002Freleases-and-updates",{"id":138,"title":139,"pages":140},"agents","Agents and MCP",[141,144,147,150,153,156],{"title":142,"url":143},"Agents overview","\u002Fdocs\u002Fagents\u002Foverview",{"title":145,"url":146},"Models and Providers","\u002Fdocs\u002Fagents\u002Fmodels-and-providers",{"title":148,"url":149},"Connect an MCP client","\u002Fdocs\u002Fagents\u002Fmcp",{"title":151,"url":152},"External agents","\u002Fdocs\u002Fagents\u002Fexternal-agents",{"title":154,"url":155},"Repositories and code work","\u002Fdocs\u002Fagents\u002Frepositories",{"title":157,"url":158},"Schedules","\u002Fdocs\u002Fagents\u002Fschedules",{"id":9,"title":10,"pages":160},[161,164,165,168,171,174],{"title":162,"url":163},"Chat","\u002Fdocs\u002Fguides\u002Fchat",{"title":4,"url":6},{"title":166,"url":167},"Mail","\u002Fdocs\u002Fguides\u002Fmail",{"title":169,"url":170},"Calls and Live","\u002Fdocs\u002Fguides\u002Fcalls",{"title":172,"url":173},"Notifications","\u002Fdocs\u002Fguides\u002Fnotifications",{"title":175,"url":176},"Telegram","\u002Fdocs\u002Fguides\u002Ftelegram",{"id":178,"title":179,"pages":180},"reference","Reference",[181,184],{"title":182,"url":183},"Glossary","\u002Fdocs\u002Freference\u002Fglossary",{"title":185,"url":186},"Troubleshooting","\u002Fdocs\u002Freference\u002Ftroubleshooting",{"title":162,"url":163},{"title":166,"url":167},1793335826264]