opencode

Connect OpenCode to Asana and Slack

Give OpenCode your Asana and Slack together and it can turn task activity into the nudges and references your team actually sees in Slack. It reads the Asana task, sets a Slack reminder or pins the message, and adds the owner as a follower so the task keeps its audience. Asana is the record of the work while Slack is where the team lives day to day. Wired in as tools, the agent keeps the two in step as it works a task.

Loading preview…
Opens a workflow with 328 tools ready to use.

Tools OpenCode gets

Pick the operations you want and each becomes a tool the agent can call directly while it works.

Asana

121 tools
Get Current User

Get the authenticated user (handy for testing credentials).

List Users

List users in a workspace (resolve assignees/followers).

Get User

Get a specific user by their gid.

List Workspaces

List workspaces and organizations the user can access.

List Teams

List teams in an organization.

List Custom Fields

List custom fields available in a workspace.

List Workspace Members

List all member records for a workspace.

Add Workspace User

Add a user (invite them) to a workspace or organization.

Remove Workspace User

Remove a user from a workspace or organization.

Typeahead Search

Search across all object types in a workspace (typeahead / autocomplete).

Get Team

Get a team's details.

Get Team Members

List users in a team.

Add Team Member

Add a user to a team.

Remove Team Member

Remove a user from a team.

List Projects

List projects, optionally filtered by workspace.

Get Project

Get a single project's details.

Create Project

Create a new project in a workspace (optionally in a team).

Update Project

Update a project's name, notes, or archived status.

Delete Project

Delete a project.

Duplicate Project

Duplicate a project (creates an async Job — poll the returned job_gid for completion).

Get Project Members

List members/memberships of a project.

Add Project Member

Add users to a project as members.

Remove Project Member

Remove users from a project.

Add Project Followers

Add followers to a project.

Remove Project Followers

Remove followers from a project.

Get Project Task Counts

Get task counts for a project (total, completed, incomplete, etc.).

Get Project Statuses

List status updates on a project.

Create Project Status

Post a status update on a project (On Track, At Risk, Off Track).

Delete Project Status

Delete a project status update.

Get Status Updates

List status updates for a project, portfolio, or goal (modern API).

Create Status Update

Create a status update for a project, portfolio, or goal (modern API).

Delete Status Update

Delete a status update.

Get Project Brief

Get a project brief.

Create Project Brief

Create a project brief (rich-text overview for a project).

Update Project Brief

Update a project brief's title or content.

Delete Project Brief

Delete a project brief.

List Project Templates

List project templates available in a workspace or team.

Create Project from Template

Instantiate a new project from a project template.

Save Project as Template

Save an existing project as a project template.

Get Job Status

Poll an async job (e.g. from duplicate_project / create_project_from_template). Returns the job status and a ``new_project`` link when complete.

Get Project Custom Fields

List custom field settings (definitions) attached to a project.

List Sections

List sections within a project.

Get Section

Get a single section by its gid.

Create Section

Create a section in a project.

Update Section

Rename or update a section.

Delete Section

Delete a section from a project.

Get Tasks in Section

List tasks in a specific section.

Search Tasks

Search tasks in a workspace by text.

Get Task

Get a single task with its fields.

Create Task

Create a task (name, notes, assignee, due date, projects).

Update Task

Update a task (rename, reassign, complete, set due date).

Delete Task

Delete a task.

Duplicate Task

Duplicate a task (optionally into the same project under a new name).

List Tasks in Project

List tasks belonging to a project.

Add Task to Project

Add a task to a project (optionally into a section).

Remove Task from Project

Remove a task from a project.

Add Task to Section

Move/place a task into a project section.

Set Task Parent

Set or change the parent task of a task (makes it a subtask).

Get Projects for Task

List projects that a task belongs to.

List Subtasks

List a task's subtasks.

Create Subtask

Create a subtask under a parent task.

Get Task Dependencies

Get tasks that a task depends on (its dependencies).

Add Task Dependencies

Set tasks that must be completed before this task (dependencies).

Remove Task Dependencies

Remove task dependencies.

Get Task Dependents

Get tasks that depend on this task (dependents / blocking tasks).

Add Task Dependents

Mark tasks as depending on this task (add dependents).

Remove Task Dependents

Remove dependent tasks from this task.

Add Followers

Add followers to a task.

Remove Followers

Remove followers from a task.

Get Tasks for Tag

List tasks that have a specific tag.

List Task Templates

List task templates in a project.

Create Task from Template

Instantiate a task from a task template.

Add Comment

Add a comment (story) to a task.

List Comments

List stories (comments + activity) on a task.

Get Story / Comment

Get a single story (comment or activity event) by its gid.

Update Story / Comment

Edit the text of a comment (story) on a task.

Delete Story / Comment

Delete a comment (story) from a task.

List Tags

List tags in a workspace.

Get Tag

Get a tag by its gid.

Create Tag

Create a new tag in a workspace.

Update Tag

Update a tag's name or color.

Delete Tag

Delete a tag.

Add Tag to Task

Tag a task.

Remove Tag from Task

Remove a tag from a task.

Get Tags for Task

List all tags on a task.

Get Custom Field

Get a custom field definition.

Create Custom Field

Create a custom field definition in a workspace.

Update Custom Field

Update a custom field's name, description, or settings.

Delete Custom Field

Delete a custom field definition from the workspace.

Set Task Custom Field

Set a custom field value on a task.

Add Custom Field to Project

Add a custom field to a project.

Remove Custom Field from Project

Remove a custom field from a project.

Get Task Attachments

List file attachments on a task.

Delete Attachment

Delete a file attachment.

Get Time Tracking Entries

List time tracking entries on a task.

Create Time Tracking Entry

Log a time entry on a task.

Update Time Tracking Entry

Update the duration or date of an existing time tracking entry.

Delete Time Tracking Entry

Delete a time tracking entry.

Get User Task List

Get a user's personal 'My Tasks' task list.

Get My Tasks

List tasks in a user's My Tasks list.

List Portfolios

List portfolios accessible to a user in a workspace.

Get Portfolio

Get a single portfolio's details.

Create Portfolio

Create a new portfolio.

Update Portfolio

Update a portfolio's name or public setting.

Delete Portfolio

Delete a portfolio.

Get Portfolio Items

List projects (items) in a portfolio.

Add Item to Portfolio

Add a project to a portfolio.

Remove Item from Portfolio

Remove a project from a portfolio.

Add Portfolio Members

Add members to a portfolio.

Remove Portfolio Members

Remove members from a portfolio.

List Goals

List goals in a workspace (requires premium/business plan).

Get Goal

Get a single goal's details.

Create Goal

Create a goal in a workspace or team.

Update Goal

Update a goal's name, status, notes, or dates.

Delete Goal

Delete a goal.

Get Parent Goals

List parent goals for a goal (supporting relationship traversal).

Set Goal Metric

Set a metric on a goal (defines how goal progress is measured).

Update Goal Metric Value

Update the current value of a goal's metric.

Add Goal Followers

Add followers / collaborators to a goal.

Remove Goal Followers

Remove followers / collaborators from a goal.

Trigger Rule

Trigger a rule that uses an 'incoming web request' trigger.

Slack

207 tools
Send Message to Channel

Post a message to a channel

Update Existing Message

Update an existing message

Delete Message

Delete a message

Send Ephemeral Message

Send an ephemeral message (only visible to one user)

Schedule Message for Later

Schedule a message for later

Get Message Permalink

Get a permalink URL for a message

List Channels in Workspace

List channels in the workspace

Get Channel Information

Get information about a channel

Get Channel Messages

Get messages from a channel

List Channel Members

Get members of a channel

Join Public Channel

Join a public channel

Leave Channel

Leave a channel

Create Channel

Create a new channel

Archive Channel

Archive a channel

Unarchive Channel

Unarchive a channel

Invite Users to Channel

Invite users to a channel

Remove User from Channel

Remove a user from a channel

Set Channel Topic

Set the topic of a channel

Set Channel Purpose

Set the purpose of a channel

Rename Channel

Rename a channel

Get Thread Replies

Get thread replies

Open Direct Message

Open or resume a direct message or multi-person DM

Close Direct Message

Close a direct message or multi-person DM

Mark Channel As Read

Mark a channel as read

List Workspace Users

List all users in the workspace

Get User Information

Get information about a user

Find User by Email

Find a user by their email address

Get User Presence Status

Get a user's presence status

List User Accessible Conversations

List conversations the calling user may access

Add Bookmark to Channel

Add a bookmark to a channel

Edit Channel Bookmark

Edit an existing bookmark

List Channel Bookmarks

List bookmarks in a channel

Remove Channel Bookmark

Remove a bookmark from a channel

List Workspace User Groups

List user groups in the workspace

Create User Group

Create a new user group

Disable User Group

Disable an existing user group

Enable User Group

Enable a disabled user group

Update User Group

Update an existing user group

List Usergroup Members

List users in a user group

Update Usergroup Member List

Update the list of users in a user group

Set Do Not Disturb Snooze

Turn on Do Not Disturb for the current user

End Snooze Mode

End the current user's snooze mode

End Do Not Disturb

End the current user's Do Not Disturb session

Get Do Not Disturb Status

Get Do Not Disturb status for a user

Get Team Do Not Disturb Status

Get Do Not Disturb status for users on a team

List Custom Emoji in Workspace

List custom emoji in the workspace

Star Message or File

Star a message, file, or channel

Unstar Item

Remove a star from an item

List User Starred Items

List starred items for the current user

Get Bot Information

Get information about a bot

Create Reminder

Create a reminder

Mark Reminder Complete

Mark a reminder as complete

Delete Reminder

Delete a reminder

Get Reminder Information

Get information about a reminder

List User Reminders

List all reminders for the current user

Add Emoji Reaction to Message

Add an emoji reaction to a message

Remove Emoji Reaction from Message

Remove an emoji reaction from a message

Get Message Reactions

Get reactions on a message

Pin Message to Channel

Pin a message to a channel

Unpin Message from Channel

Unpin a message from a channel

List Pinned Items in Channel

List pinned items in a channel

List Workspace Files

List files in the workspace

Get File Information

Get information about a file

Delete File

Delete a file

Upload File to Slack

Upload a file to Slack

Create File Public Url

Create a public URL for a file (files.sharedPublicURL)

Revoke File Public Url

Revoke public URL for a file (files.revokePublicURL)

Search Workspace Messages

Search for messages in the workspace

Search Workspace Files

Search for files in the workspace (search.files)

Search Messages and Files

Search for messages and files (search.all)

Delete Scheduled Message

Delete a scheduled message (chat.deleteScheduledMessage)

List Scheduled Messages

List scheduled messages (chat.scheduledMessages.list)

Send Me Message

Share a /me message into a channel (chat.meMessage)

Provide Custom Unfurl Behavior

Provide custom unfurl behavior for URLs (chat.unfurl)

Get User Profile Information

Get a user's profile information (users.profile.get)

Set User Presence Status

Set user presence (users.setPresence)

Test Authentication

Test authentication and get info about the token

Get Workspace Information

Get information about the workspace

Test Api Connection

Test the API connection (api.test)

Revoke Oauth Token

Revoke an OAuth token (auth.revoke)

Uninstall App from Workspace

Uninstall an app from a workspace (apps.uninstall)

Get Team Billable Information

Get billable info for team members (team.billableInfo)

Get Workspace Access Logs

Get access logs for the workspace (team.accessLogs)

Get Workspace Integration Logs

Get integration logs for the workspace (team.integrationLogs)

Accept Shared Channel Invite

Accept a shared channel invite (conversations.acceptSharedInvite)

Decline Shared Channel Invite

Decline a shared channel invite (conversations.declineSharedInvite)

List Slack Connect Invites

List Slack Connect invites (conversations.listConnectInvites)

Get External File Upload Url

Get URL for uploading a file externally (files.getUploadURLExternal)

Complete External File Upload

Complete a file upload after uploading to external URL (files.completeUploadExternal)

Set User Profile Fields

Set user profile fields (users.profile.set)

Approve Slack Connect Channel Invite

Approve an invitation to a Slack Connect channel (conversations.approveSharedInvite)

Invite User to Slack Connect Channel

Invite a user to a Slack Connect channel (conversations.inviteShared)

Add Remote File to Workspace

Add a remote file (files.remote.add)

Remove Remote File

Remove a remote file (files.remote.remove)

Share Remote File to Channel

Share a remote file to a channel (files.remote.share)

List Remote Files

List remote files (files.remote.list)

List Reactions for Item

List reactions for an item (reactions.list)

Get Remote File Information

Get information about a remote file (files.remote.info)

Update Remote File

Update a remote file (files.remote.update)

Delete File Comment

Delete a file comment (files.comments.delete)

Delete User Profile Photo

Delete the user's profile photo (users.deletePhoto)

Set User As Active

Mark user as active (users.setActive) - Deprecated but still functional

Create Canvas in Channel

Create a canvas in a channel (conversations.canvases.create)

Set Channel External Invite Permissions

Set external invite permissions for a channel (conversations.externalInvitePermissions.set)

Approve Slack Connect Invite Request

Approve a Slack Connect invite request (conversations.requestSharedInvite.approve)

Deny Slack Connect Invite Request

Deny a Slack Connect invite request (conversations.requestSharedInvite.deny)

List Slack Connect Invite Requests

List Slack Connect invite requests (conversations.requestSharedInvite.list)

Get Analytics File for Date

Get analytics data for a given date (admin.analytics.getFile)

List App Activity Logs

Get logs for app activities (admin.apps.activities.list)

Approve App for Installation

Approve an app for installation (admin.apps.approve)

List Approved Apps

List approved apps (admin.apps.approved.list)

Clear App Resolution

Clear app resolution (admin.apps.clearResolution)

Lookup App Configuration

Look up app config (admin.apps.config.lookup)

Set App Configuration

Set app config (admin.apps.config.set)

Cancel App Request

Cancel an app request (admin.apps.requests.cancel)

List App Requests

List app requests (admin.apps.requests.list)

Restrict App

Restrict an app (admin.apps.restrict)

List Restricted Apps

List restricted apps (admin.apps.restricted.list)

Uninstall App

Uninstall an app (admin.apps.uninstall)

Get Allowed Audit Anomaly Item

Get allowed audit anomaly item (admin.audit.anomaly.allow.getItem)

Update Allowed Audit Anomaly Item

Update allowed audit anomaly item (admin.audit.anomaly.allow.updateItem)

Assign Entities to Auth Policy

Assign entities to auth policy (admin.auth.policy.assignEntities)

Get Entities for Auth Policy

Get entities for auth policy (admin.auth.policy.getEntities)

Remove Entities from Auth Policy

Remove entities from auth policy (admin.auth.policy.removeEntities)

Create Information Barrier

Create an information barrier (admin.barriers.create)

Delete Information Barrier

Delete an information barrier (admin.barriers.delete)

List Information Barriers

List information barriers (admin.barriers.list)

Update Information Barrier

Update an information barrier (admin.barriers.update)

Archive Conversation As Admin

Archive a conversation (admin.conversations.archive)

Bulk Archive Conversations

Bulk archive conversations (admin.conversations.bulkArchive)

Bulk Delete Conversations

Bulk delete conversations (admin.conversations.bulkDelete)

Bulk Move Conversations to Team

Bulk move conversations to a team (admin.conversations.bulkMove)

Convert Channel to Private

Convert public channel to private (admin.conversations.convertToPrivate)

Convert Channel to Public

Convert private channel to public (admin.conversations.convertToPublic)

Create Admin Conversation

Create a conversation (admin.conversations.create)

Delete Conversation

Delete a conversation (admin.conversations.delete)

Disconnect Shared Channel

Disconnect a shared channel (admin.conversations.disconnectShared)

List Ekm Original Channel Info

List original connected channel info for EKM (admin.conversations.ekm.listOriginalConnectedChannelInfo)

Get Conversation Preferences

Get conversation preferences (admin.conversations.getConversationPrefs)

Get Channel Retention Settings

Get custom retention settings (admin.conversations.getCustomRetention)

List Teams for Conversation

Get teams for a conversation (admin.conversations.getTeams)

Invite Users to Conversation As Admin

Invite users to a conversation (admin.conversations.invite)

Lookup Conversations

Look up conversations (admin.conversations.lookup)

Remove Channel Retention Settings

Remove custom retention settings (admin.conversations.removeCustomRetention)

Rename Conversation As Admin

Rename a conversation (admin.conversations.rename)

Add Idp Group to Channel

Add IDP group to channel (admin.conversations.restrictAccess.addGroup)

List Idp Groups for Channel

List IDP groups for channel (admin.conversations.restrictAccess.listGroups)

Remove Idp Group from Channel

Remove IDP group from channel (admin.conversations.restrictAccess.removeGroup)

Search Conversations

Search for conversations (admin.conversations.search)

Set Conversation Preferences

Set conversation preferences (admin.conversations.setConversationPrefs)

Set Channel Retention Settings

Set custom retention settings (admin.conversations.setCustomRetention)

Set Teams for Conversation

Set teams for a conversation (admin.conversations.setTeams)

Unarchive Conversation As Admin

Unarchive a conversation (admin.conversations.unarchive)

Add Custom Emoji

Add custom emoji (admin.emoji.add)

Add Emoji Alias

Add emoji alias (admin.emoji.addAlias)

List Custom Emoji

List custom emoji (admin.emoji.list)

Remove Custom Emoji

Remove custom emoji (admin.emoji.remove)

Rename Custom Emoji

Rename custom emoji (admin.emoji.rename)

List Functions

List functions (admin.functions.list)

Lookup Function Permissions

Look up function permissions (admin.functions.permissions.lookup)

Set Function Permissions

Set function permissions (admin.functions.permissions.set)

Approve Invite Request

Approve invite request (admin.inviteRequests.approve)

List Approved Invite Requests

List approved invite requests (admin.inviteRequests.approved.list)

List Denied Invite Requests

List denied invite requests (admin.inviteRequests.denied.list)

Deny Invite Request

Deny invite request (admin.inviteRequests.deny)

List Invite Requests

List invite requests (admin.inviteRequests.list)

Add Role Assignments

Add role assignments (admin.roles.addAssignments)

List Role Assignments

List role assignments (admin.roles.listAssignments)

Remove Role Assignments

Remove role assignments (admin.roles.removeAssignments)

List Team Admins

List team admins (admin.teams.admins.list)

Create Team

Create a team (admin.teams.create)

List Teams

List teams (admin.teams.list)

List Team Owners

List team owners (admin.teams.owners.list)

Get Team Settings

Get team settings info (admin.teams.settings.info)

Set Default Channels for Team

Set default channels for team (admin.teams.settings.setDefaultChannels)

Set Team Description

Set team description (admin.teams.settings.setDescription)

Set Team Discoverability

Set team discoverability (admin.teams.settings.setDiscoverability)

Set Team Icon

Set team icon (admin.teams.settings.setIcon)

Set Team Name

Set team name (admin.teams.settings.setName)

Add Channels to Usergroup

Add channels to usergroup (admin.usergroups.addChannels)

Add Teams to Usergroup

Add teams to usergroup (admin.usergroups.addTeams)

List Channels in Usergroup

List channels in usergroup (admin.usergroups.listChannels)

Remove Channels from Usergroup

Remove channels from usergroup (admin.usergroups.removeChannels)

Assign User to Team

Assign a user to a team (admin.users.assign)

Get User Expiration

Get expiration for a user (admin.users.getExpiration)

Invite User to Team

Invite a user to a team (admin.users.invite)

List Users in Team

List users in a team (admin.users.list)

Remove User from Team

Remove a user from a team (admin.users.remove)

Clear User Session Settings

Clear session settings (admin.users.session.clearSettings)

Get User Session Settings

Get session settings (admin.users.session.getSettings)

Invalidate User Session

Invalidate user session (admin.users.session.invalidate)

List User Sessions

List user sessions (admin.users.session.list)

Reset User Session

Reset user session (admin.users.session.reset)

Bulk Reset User Sessions

Bulk reset user sessions (admin.users.session.resetBulk)

Set User Session Settings

Set session settings (admin.users.session.setSettings)

Set User As Admin

Set a user as admin (admin.users.setAdmin)

Set User Expiration

Set expiration for a user (admin.users.setExpiration)

Set User As Owner

Set a user as owner (admin.users.setOwner)

Set User As Regular

Set a user as regular (admin.users.setRegular)

Export Unsupported Version Users

Export unsupported version users (admin.users.unsupportedVersions.export)

Add Workflow Collaborators

Add workflow collaborators (admin.workflows.collaborators.add)

Remove Workflow Collaborators

Remove workflow collaborators (admin.workflows.collaborators.remove)

Lookup Workflow Permissions

Look up workflow permissions (admin.workflows.permissions.lookup)

Search Workflows

Search workflows (admin.workflows.search)

Lookup Workflow Trigger Type Permissions

Look up workflow trigger type permissions (admin.workflows.triggers.types.permissions.lookup)

Set Workflow Trigger Type Permissions

Set workflow trigger type permissions (admin.workflows.triggers.types.permissions.set)

Unpublish Workflow

Unpublish a workflow (admin.workflows.unpublish)

What you can build

Read an Asana task and create a Slack reminder for the owner, then add that person as a follower on the task.
Bookmark the Asana project in the team's Slack channel and add the channel's members as project followers in Asana.
When a task gains a blocking dependency, pin a message in the team's Slack channel and add a comment on the Asana task.
Add the sprint file to Slack as a remote file and add the project members as followers on the Asana project.

About OpenCode

OpenCode is an open, model-agnostic command-line coding agent. In NoClick it runs hosted and gains your apps as tools, so it can act on real systems rather than just edit files. Wire an integration into the agent and OpenCode can use that app’s operations directly while it works. It is a flexible choice when you want an open agent with broad model support and real tool access.

Open and model-agnostic
Flexible across many underlying models
Good general-purpose tool use
Lightweight to point at a focused task

Frequently asked questions

Open your OpenCode agent in one click

NoClick runs OpenCode for you with Asana and Slack wired in as tools. Connect your account and run.