Download the PHP package tigusigalpa/manus-ai-php without Composer
On this page you can find all versions of the php package tigusigalpa/manus-ai-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tigusigalpa/manus-ai-php
More information about tigusigalpa/manus-ai-php
Files in tigusigalpa/manus-ai-php
Package manus-ai-php
Short Description 🚀 Manus AI PHP SDK - Complete library for integration with Manus AI API. Easy integration of Manus AI agent into PHP applications with Laravel support. Task automation, AI agents, file management. Full documentation, code examples, API support.
License MIT
Homepage https://github.com/tigusigalpa/manus-ai-php
Informations about the package manus-ai-php
Manus AI PHP/Laravel Client/SDK/Library

An independent PHP 8.2+ client for Manus API v2, with optional Laravel integration. It creates and manages agent tasks, uploads attachments, receives webhook metadata, and exposes the v2 discovery, usage, and website endpoints.
Go SDK
See CHANGELOG.md for the API-v2 alignment work in this version.
Manus controls API behaviour, available profiles, and permitted values. Check the official API reference whenever you upgrade an integration.
Install
The package requires PHP 8.2+, Guzzle 7, and Laravel 8–12 only when its Laravel integration is used.
Quick start
Keep credentials out of source control:
The task runs asynchronously. Poll it with listMessages() or use webhooks; task.detail only provides status and metadata.
Authentication and client configuration
Use an API key for direct authentication:
For Manus Open Apps, pass an OAuth access token instead. The client sends either Authorization: Bearer … or x-manus-api-key, never both:
The remaining constructor arguments support a custom base URL, Guzzle client, request timeout, connect timeout, and default task options:
Tasks
Create a task
createTask() accepts API-native snake_case options. The legacy camelCase spellings are accepted where a compatible alias exists, but new code should use the current API names.
task_references is limited by Manus to 20 bare 22-character task IDs. enable_ask_user / enableAskUser remains a compatibility alias for interactive_mode.
AgentProfile::STANDARD, LITE, and MAX are the current profile names. MANUS_1_6, MANUS_1_6_LITE, and MANUS_1_6_MAX are retained legacy aliases; Manus currently accepts them for compatibility.
Inspect, list, update, delete
The native v2 response for task.detail nests data under task. For convenience, getTask() preserves that task key and also promotes its fields (id, status, agent_profile, and so on) to the returned array's top level.
Follow a conversation
sendMessage() accepts the same attachment helpers and the message options connectors, enable_skills, force_skills, and task_references.
Files and attachments
File upload has three steps: request a presigned URL, PUT the bytes, and attach the returned file_id to a task.
createFile() and getFile() retain the native file object while additionally exposing its properties at the top level; file_id is supplied as a convenience alias for file.id.
TaskAttachment provides fromFileId(), fromUrl(), fromBase64(), and fromFilePath(). fromFilePath() reads the whole file into memory, so use the presigned upload flow for large files.
There is no /v2/file.list endpoint. listFiles() is retained only as a deprecated method that throws a ValidationException before making a request. Store the ID returned by createFile() if it must be inspected with getFile() or removed with deleteFile().
Webhooks
The v2 create endpoint does not accept an events field; Manus registers lifecycle notifications automatically. Existing events values are ignored for compatibility.
Use listWebhooks(), deleteWebhook(), and getWebhookPublicKey() to manage registered webhooks and retrieve the key needed for signature verification.
Additional API v2 resources
| Area | Methods |
|---|---|
| Projects and discovery | createProject, listProjects, listSkills, listAgents, getAgent, updateAgent, listConnectors |
| Browser and webhooks | listOnlineBrowserClients, listWebhooks, getWebhookPublicKey |
| Credit usage | listUsage, getTeamUsageStatistic, listTeamUsageLog, getAvailableCredits |
| Task websites | getWebsiteStatus, listWebsiteCheckpoints, publishWebsite, updateWebsite |
Every method returns the decoded v2 JSON response. See the matching official API endpoint documentation for accepted option values and response fields.
Laravel
Laravel discovers the provider automatically. Publish the configuration if you need to change defaults:
The provider registers ManusAIClientInterface, ManusAIClient, and the ManusAI facade against the same singleton. Request and connect timeouts from config/manus-ai.php are used when that client is created.
Available Artisan commands:
Errors
AuthenticationExceptionfor invalid credentials or HTTP 401/403 responses.ValidationExceptionfor invalid client input and APIinvalid_argumentresponses.ManusAIExceptionfor other transport, HTTP, or response-decoding failures.
API failures include the HTTP status, Manus error code, and request_id (when supplied) in getContext(). Never log API keys or bearer tokens.
Testing
The test suite uses mocked HTTP responses and does not make calls to Manus.
Migrating from the older PHP client
- Replace removed
taskModewith the current task fields such asinteractive_mode,project_id, andshare_visibility. - Replace
enable_ask_userwithinteractive_mode; the old name remains accepted as an alias. - Replace task-update
hide_in_task_listwithenable_visible_in_task_list. The old alias is inverted automatically for compatibility. - Read task status from
getTask($id)['status']and event history/output fromlistMessages(). - Use
file_idfromcreateFile()and remove anylistFiles()calls. - Prefer
standard,lite, ormaxfor newagent_profilerequests.
License
MIT. See LICENSE.
All versions of manus-ai-php with dependencies
guzzlehttp/guzzle Version ^7.8
illuminate/support Version ^8|^9|^10|^11|^12