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.
Pick the operations you want and each becomes a tool the agent can call directly while it works.
Get the authenticated user (handy for testing credentials).
List users in a workspace (resolve assignees/followers).
Get a specific user by their gid.
List workspaces and organizations the user can access.
List teams in an organization.
List custom fields available in a workspace.
List all member records for a workspace.
Add a user (invite them) to a workspace or organization.
Remove a user from a workspace or organization.
Search across all object types in a workspace (typeahead / autocomplete).
Get a team's details.
List users in a team.
Add a user to a team.
Remove a user from a team.
List projects, optionally filtered by workspace.
Get a single project's details.
Create a new project in a workspace (optionally in a team).
Update a project's name, notes, or archived status.
Delete a project.
Duplicate a project (creates an async Job — poll the returned job_gid for completion).
List members/memberships of a project.
Add users to a project as members.
Remove users from a project.
Add followers to a project.
Remove followers from a project.
Get task counts for a project (total, completed, incomplete, etc.).
List status updates on a project.
Post a status update on a project (On Track, At Risk, Off Track).
Delete a project status update.
List status updates for a project, portfolio, or goal (modern API).
Create a status update for a project, portfolio, or goal (modern API).
Delete a status update.
Get a project brief.
Create a project brief (rich-text overview for a project).
Update a project brief's title or content.
Delete a project brief.
List project templates available in a workspace or team.
Instantiate a new project from a project template.
Save an existing project as a project template.
Poll an async job (e.g. from duplicate_project / create_project_from_template). Returns the job status and a ``new_project`` link when complete.
List custom field settings (definitions) attached to a project.
List sections within a project.
Get a single section by its gid.
Create a section in a project.
Rename or update a section.
Delete a section from a project.
List tasks in a specific section.
Search tasks in a workspace by text.
Get a single task with its fields.
Create a task (name, notes, assignee, due date, projects).
Update a task (rename, reassign, complete, set due date).
Delete a task.
Duplicate a task (optionally into the same project under a new name).
List tasks belonging to a project.
Add a task to a project (optionally into a section).
Remove a task from a project.
Move/place a task into a project section.
Set or change the parent task of a task (makes it a subtask).
List projects that a task belongs to.
List a task's subtasks.
Create a subtask under a parent task.
Get tasks that a task depends on (its dependencies).
Set tasks that must be completed before this task (dependencies).
Remove task dependencies.
Get tasks that depend on this task (dependents / blocking tasks).
Mark tasks as depending on this task (add dependents).
Remove dependent tasks from this task.
Add followers to a task.
Remove followers from a task.
List tasks that have a specific tag.
List task templates in a project.
Instantiate a task from a task template.
Add a comment (story) to a task.
List stories (comments + activity) on a task.
Get a single story (comment or activity event) by its gid.
Edit the text of a comment (story) on a task.
Delete a comment (story) from a task.
List tags in a workspace.
Get a tag by its gid.
Create a new tag in a workspace.
Update a tag's name or color.
Delete a tag.
Tag a task.
Remove a tag from a task.
List all tags on a task.
Get a custom field definition.
Create a custom field definition in a workspace.
Update a custom field's name, description, or settings.
Delete a custom field definition from the workspace.
Set a custom field value on a task.
Add a custom field to a project.
Remove a custom field from a project.
List file attachments on a task.
Delete a file attachment.
List time tracking entries on a task.
Log a time entry on a task.
Update the duration or date of an existing time tracking entry.
Delete a time tracking entry.
Get a user's personal 'My Tasks' task list.
List tasks in a user's My Tasks list.
List portfolios accessible to a user in a workspace.
Get a single portfolio's details.
Create a new portfolio.
Update a portfolio's name or public setting.
Delete a portfolio.
List projects (items) in a portfolio.
Add a project to a portfolio.
Remove a project from a portfolio.
Add members to a portfolio.
Remove members from a portfolio.
List goals in a workspace (requires premium/business plan).
Get a single goal's details.
Create a goal in a workspace or team.
Update a goal's name, status, notes, or dates.
Delete a goal.
List parent goals for a goal (supporting relationship traversal).
Set a metric on a goal (defines how goal progress is measured).
Update the current value of a goal's metric.
Add followers / collaborators to a goal.
Remove followers / collaborators from a goal.
Trigger a rule that uses an 'incoming web request' trigger.
Post a message to a channel
Update an existing message
Delete a message
Send an ephemeral message (only visible to one user)
Schedule a message for later
Get a permalink URL for a message
List channels in the workspace
Get information about a channel
Get messages from a channel
Get members of a channel
Join a public channel
Leave a channel
Create a new channel
Archive a channel
Unarchive a channel
Invite users to a channel
Remove a user from a channel
Set the topic of a channel
Set the purpose of a channel
Rename a channel
Get thread replies
Open or resume a direct message or multi-person DM
Close a direct message or multi-person DM
Mark a channel as read
List all users in the workspace
Get information about a user
Find a user by their email address
Get a user's presence status
List conversations the calling user may access
Add a bookmark to a channel
Edit an existing bookmark
List bookmarks in a channel
Remove a bookmark from a channel
List user groups in the workspace
Create a new user group
Disable an existing user group
Enable a disabled user group
Update an existing user group
List users in a user group
Update the list of users in a user group
Turn on Do Not Disturb for the current user
End the current user's snooze mode
End the current user's Do Not Disturb session
Get Do Not Disturb status for a user
Get Do Not Disturb status for users on a team
List custom emoji in the workspace
Star a message, file, or channel
Remove a star from an item
List starred items for the current user
Get information about a bot
Create a reminder
Mark a reminder as complete
Delete a reminder
Get information about a reminder
List all reminders for the current user
Add an emoji reaction to a message
Remove an emoji reaction from a message
Get reactions on a message
Pin a message to a channel
Unpin a message from a channel
List pinned items in a channel
List files in the workspace
Get information about a file
Delete a file
Upload a file to Slack
Create a public URL for a file (files.sharedPublicURL)
Revoke public URL for a file (files.revokePublicURL)
Search for messages in the workspace
Search for files in the workspace (search.files)
Search for messages and files (search.all)
Delete a scheduled message (chat.deleteScheduledMessage)
List scheduled messages (chat.scheduledMessages.list)
Share a /me message into a channel (chat.meMessage)
Provide custom unfurl behavior for URLs (chat.unfurl)
Get a user's profile information (users.profile.get)
Set user presence (users.setPresence)
Test authentication and get info about the token
Get information about the workspace
Test the API connection (api.test)
Revoke an OAuth token (auth.revoke)
Uninstall an app from a workspace (apps.uninstall)
Get billable info for team members (team.billableInfo)
Get access logs for the workspace (team.accessLogs)
Get integration logs for the workspace (team.integrationLogs)
Accept a shared channel invite (conversations.acceptSharedInvite)
Decline a shared channel invite (conversations.declineSharedInvite)
List Slack Connect invites (conversations.listConnectInvites)
Get URL for uploading a file externally (files.getUploadURLExternal)
Complete a file upload after uploading to external URL (files.completeUploadExternal)
Set user profile fields (users.profile.set)
Approve an invitation to a Slack Connect channel (conversations.approveSharedInvite)
Invite a user to a Slack Connect channel (conversations.inviteShared)
Add a remote file (files.remote.add)
Remove a remote file (files.remote.remove)
Share a remote file to a channel (files.remote.share)
List remote files (files.remote.list)
List reactions for an item (reactions.list)
Get information about a remote file (files.remote.info)
Update a remote file (files.remote.update)
Delete a file comment (files.comments.delete)
Delete the user's profile photo (users.deletePhoto)
Mark user as active (users.setActive) - Deprecated but still functional
Create a canvas in a channel (conversations.canvases.create)
Set external invite permissions for a channel (conversations.externalInvitePermissions.set)
Approve a Slack Connect invite request (conversations.requestSharedInvite.approve)
Deny a Slack Connect invite request (conversations.requestSharedInvite.deny)
List Slack Connect invite requests (conversations.requestSharedInvite.list)
Get analytics data for a given date (admin.analytics.getFile)
Get logs for app activities (admin.apps.activities.list)
Approve an app for installation (admin.apps.approve)
List approved apps (admin.apps.approved.list)
Clear app resolution (admin.apps.clearResolution)
Look up app config (admin.apps.config.lookup)
Set app config (admin.apps.config.set)
Cancel an app request (admin.apps.requests.cancel)
List app requests (admin.apps.requests.list)
Restrict an app (admin.apps.restrict)
List restricted apps (admin.apps.restricted.list)
Uninstall an app (admin.apps.uninstall)
Get allowed audit anomaly item (admin.audit.anomaly.allow.getItem)
Update allowed audit anomaly item (admin.audit.anomaly.allow.updateItem)
Assign entities to auth policy (admin.auth.policy.assignEntities)
Get entities for auth policy (admin.auth.policy.getEntities)
Remove entities from auth policy (admin.auth.policy.removeEntities)
Create an information barrier (admin.barriers.create)
Delete an information barrier (admin.barriers.delete)
List information barriers (admin.barriers.list)
Update an information barrier (admin.barriers.update)
Archive a conversation (admin.conversations.archive)
Bulk archive conversations (admin.conversations.bulkArchive)
Bulk delete conversations (admin.conversations.bulkDelete)
Bulk move conversations to a team (admin.conversations.bulkMove)
Convert public channel to private (admin.conversations.convertToPrivate)
Convert private channel to public (admin.conversations.convertToPublic)
Create a conversation (admin.conversations.create)
Delete a conversation (admin.conversations.delete)
Disconnect a shared channel (admin.conversations.disconnectShared)
List original connected channel info for EKM (admin.conversations.ekm.listOriginalConnectedChannelInfo)
Get conversation preferences (admin.conversations.getConversationPrefs)
Get custom retention settings (admin.conversations.getCustomRetention)
Get teams for a conversation (admin.conversations.getTeams)
Invite users to a conversation (admin.conversations.invite)
Look up conversations (admin.conversations.lookup)
Remove custom retention settings (admin.conversations.removeCustomRetention)
Rename a conversation (admin.conversations.rename)
Add IDP group to channel (admin.conversations.restrictAccess.addGroup)
List IDP groups for channel (admin.conversations.restrictAccess.listGroups)
Remove IDP group from channel (admin.conversations.restrictAccess.removeGroup)
Search for conversations (admin.conversations.search)
Set conversation preferences (admin.conversations.setConversationPrefs)
Set custom retention settings (admin.conversations.setCustomRetention)
Set teams for a conversation (admin.conversations.setTeams)
Unarchive a conversation (admin.conversations.unarchive)
Add custom emoji (admin.emoji.add)
Add emoji alias (admin.emoji.addAlias)
List custom emoji (admin.emoji.list)
Remove custom emoji (admin.emoji.remove)
Rename custom emoji (admin.emoji.rename)
List functions (admin.functions.list)
Look up function permissions (admin.functions.permissions.lookup)
Set function permissions (admin.functions.permissions.set)
Approve invite request (admin.inviteRequests.approve)
List approved invite requests (admin.inviteRequests.approved.list)
List denied invite requests (admin.inviteRequests.denied.list)
Deny invite request (admin.inviteRequests.deny)
List invite requests (admin.inviteRequests.list)
Add role assignments (admin.roles.addAssignments)
List role assignments (admin.roles.listAssignments)
Remove role assignments (admin.roles.removeAssignments)
List team admins (admin.teams.admins.list)
Create a team (admin.teams.create)
List teams (admin.teams.list)
List team owners (admin.teams.owners.list)
Get team settings info (admin.teams.settings.info)
Set default channels for team (admin.teams.settings.setDefaultChannels)
Set team description (admin.teams.settings.setDescription)
Set team discoverability (admin.teams.settings.setDiscoverability)
Set team icon (admin.teams.settings.setIcon)
Set team name (admin.teams.settings.setName)
Add channels to usergroup (admin.usergroups.addChannels)
Add teams to usergroup (admin.usergroups.addTeams)
List channels in usergroup (admin.usergroups.listChannels)
Remove channels from usergroup (admin.usergroups.removeChannels)
Assign a user to a team (admin.users.assign)
Get expiration for a user (admin.users.getExpiration)
Invite a user to a team (admin.users.invite)
List users in a team (admin.users.list)
Remove a user from a team (admin.users.remove)
Clear session settings (admin.users.session.clearSettings)
Get session settings (admin.users.session.getSettings)
Invalidate user session (admin.users.session.invalidate)
List user sessions (admin.users.session.list)
Reset user session (admin.users.session.reset)
Bulk reset user sessions (admin.users.session.resetBulk)
Set session settings (admin.users.session.setSettings)
Set a user as admin (admin.users.setAdmin)
Set expiration for a user (admin.users.setExpiration)
Set a user as owner (admin.users.setOwner)
Set a user as regular (admin.users.setRegular)
Export unsupported version users (admin.users.unsupportedVersions.export)
Add workflow collaborators (admin.workflows.collaborators.add)
Remove workflow collaborators (admin.workflows.collaborators.remove)
Look up workflow permissions (admin.workflows.permissions.lookup)
Search workflows (admin.workflows.search)
Look up workflow trigger type permissions (admin.workflows.triggers.types.permissions.lookup)
Set workflow trigger type permissions (admin.workflows.triggers.types.permissions.set)
Unpublish a workflow (admin.workflows.unpublish)
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.
NoClick runs OpenCode for you with Asana and Slack wired in as tools. Connect your account and run.