{"id":26477473,"url":"https://github.com/storacha/elizaos-plugin","last_synced_at":"2025-03-20T00:47:05.951Z","repository":{"id":279616267,"uuid":"938115923","full_name":"storacha/elizaos-plugin","owner":"storacha","description":"🔌 A plugin providing distributed storage functionality for ElizaOS agents.","archived":false,"fork":false,"pushed_at":"2025-03-17T19:42:06.000Z","size":117,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-17T20:38:05.223Z","etag":null,"topics":["client","decentralized","decentralized-storage","elizaos","elizaos-plugins","filecoin","ipfs","plugin","storage","web3"],"latest_commit_sha":null,"homepage":"https://storacha.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storacha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T12:55:41.000Z","updated_at":"2025-03-17T15:47:13.000Z","dependencies_parsed_at":"2025-03-17T23:15:29.523Z","dependency_job_id":null,"html_url":"https://github.com/storacha/elizaos-plugin","commit_stats":null,"previous_names":["storacha/elizaos-plugin"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storacha%2Felizaos-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storacha%2Felizaos-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storacha%2Felizaos-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storacha%2Felizaos-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storacha","download_url":"https://codeload.github.com/storacha/elizaos-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244530997,"owners_count":20467388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","decentralized","decentralized-storage","elizaos","elizaos-plugins","filecoin","ipfs","plugin","storage","web3"],"created_at":"2025-03-20T00:47:05.345Z","updated_at":"2025-03-20T00:47:05.934Z","avatar_url":"https://github.com/storacha.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @storacha/elizaos-plugin\n\nA plugin providing distributed storage functionality for ElizaOS agents.\n\n## Description\n\nThe Storacha plugin enables agents to interact with a distributed storage network, allowing for file uploads and retrieval.\n\n## Installation\n\n```bash\npnpm install @storacha/elizaos-plugin\n```\n\n## Configuration\n\n1. Add the plugin to the Agent configuration, e.g.\n    ```typescript\n    // eliza/agent/src/defaultCharacter.ts\n    import { storagePlugin } from \"@storacha/elizaos-plugin\";\n\n    export const defaultCharacter: Character = {\n        name: \"Eliza\",\n        username: \"eliza\",\n        plugins: [storagePlugin],\n        ...\n    };\n    ```\n\n2. Create the env var file\n    ```bash\n    cp .env.example agent/.env\n    ```\n\n3. Generate and set the Agent Private Key\n   ```bash\n   w3 key create\n   ```\n   - Copy the private key (e.g., `MgCYJE...Ig3Kk=`) and set it to the `STORACHA_AGENT_PRIVATE_KEY` env var.\n   - Copy the Agent DID key (e.g., `did:key:...`) to create the Agent Delegation.\n\n4. Create the Agent Delegation\n   - Replace `AGENT_DID_KEY` with the DID Key you copied in the previous step and execute:\n   ```bash\n   w3 delegation create AGENT_DID_KEY \\\n    --can 'store/add' \\\n    --can 'filecoin/offer' \\\n    --can 'upload/add' \\\n    --can 'space/blob/add' \\\n    --can 'space/index/add' | base64\n   ```\n   - Copy the base64 encoded content and set it to the `STORACHA_AGENT_DELEGATION` env var.\n\n5. Set the model \n    - If you are starting from scratch you may want to use OpenRouter API to provide the LLM Model for the Agent.\n    - Just create an account and API key at: https://openrouter.ai\n    - Then set the `OPENROUTER_API_KEY` env var.\n    - The default agent character is already configured to use OpenRouter.\n\n\n## Build \u0026 Run\n\n1. Build and start the agent from the project root folder\n```bash\npnpm install --no-frozen-lockfile \u0026\u0026 pnpm build \u0026\u0026 pnpm start\n```\n\n2. In another terminal start the Web Client to interact with the agent\n```bash\npnpm start:client\n```\n\n3. Open http://localhost:5173 in browser and have fun\n\n## Features\n\n### 1. File Upload\n\n- STORAGE_UPLOAD action for uploading files to the Storacha network\n- Supports multiple file types and sizes\n- Provides a link to access uploaded files\n\n### 2. File Retrieval\n\n- STORAGE_RETRIEVE action for reading files from the IPFS based on a CID.\n- Embeds the file in the Agent response as an attachment, so the user can download it.\n\n## Development\n\n1. Clone the repository\n\n2. Install dependencies\n\n```bash\npnpm install\n```\n\n3. Build the plugin\n\n```bash\npnpm run build\n```\n\n## Dependencies\n\n- @elizaos/core: workspace:*\n\n## Future Enhancements\n- Conversation History \u0026 Agent Context Backup\n- Cross Agent Data Sharing\n- Encryption with LIT Protocol\n\n## License\n\nMIT \u0026 Apache 2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoracha%2Felizaos-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstoracha%2Felizaos-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstoracha%2Felizaos-plugin/lists"}