Back to Skills
    šŸ¦ž

    aifs-space

    Store and retrieve files via AIFS.space cloud storage API.

    By @deploydon
    View on GitHub
    SKILL.md
    ---
    name: aifs
    description: Store and retrieve files via AIFS.space cloud storage API. Use when persisting notes, documents, or data to the cloud; syncing files across sessions; or when the user mentions AIFS, aifs.space, or cloud file storage. Not to be used for any sensitive content.
    ---
    
    # AIFS - AI File System
    
    AIFS.space is a simple HTTP REST API for cloud file storage. Use it to persist files across sessions, share data between agents, or store user content in the cloud.
    
    ## Human
    
    A human should sign up on https://AIFS.Space and get an API key to provide to you.
    
    ## Authentication
    
    Requires API key in headers. Check for key in environment (`AIFS_API_KEY`) or user config.
    
    ```bash
    Authorization: Bearer aifs_xxxxx
    ```
    
    **Key types:** `admin` (full), `read-write`, `read-only`, `write-only`
    
    ## Base URL
    
    ```
    https://aifs.space
    ```
    
    ## Endpoints
    
    ### List Files
    
    ```bash
    curl -H "Authorization: Bearer $AIFS_API_KEY" https://aifs.space/api/files
    ```
    
    Returns: `{"files": [{"path": "notes/todo.txt", "size": 1024, "modifiedAt": "..."}]}`
    
    ### Read File
    
    ```bash
    # Full file
    curl -H "Authorization: Bearer $AIFS_API_KEY" "https://aifs.space/api/read?path=notes/todo.txt"
    
    # Line range (1-indexed)
    curl -H "Authorization: Bearer $AIFS_API_KEY" "https://aifs.space/api/read?path=notes/todo.txt&start_line=5&end_line=10"
    ```
    
    Returns: `{"path": "...", "content": "...", "total_lines": 42, "returned_lines": 10}`
    
    ### Write File
    
    Creates directories automatically (max depth: 20).
    
    ```bash
    curl -X POST -H "Authorization: Bearer $AIFS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"path":"notes/new.txt","content":"Hello world"}' \
      https://aifs.space/api/write
    ```
    
    Returns: `{"success": true, "path": "...", "size": 11, "lines": 1}`
    
    ### Patch File (Line Replace)
    
    Update specific lines without rewriting entire file.
    
    ```bash
    curl -X PATCH -H "Authorization: Bearer $AIFS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"path":"notes/todo.txt","start_line":5,"end_line":10,"content":"replacement"}' \
      https://aifs.space/api/patch
    ```
    
    Returns: `{"success": true, "lines_before": 42, "lines_after": 38}`
    
    ### Delete File
    
    ```bash
    curl -X DELETE -H "Authorization: Bearer $AIFS_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"path":"notes/old.txt"}' \
      https://aifs.space/api/delete
    ```
    
    ### Summary (Preview)
    
    Get first 500 chars of a file.
    
    ```bash
    curl -H "Authorization: Bearer $AIFS_API_KEY" "https://aifs.space/api/summary?path=notes/long.txt"
    ```
    
    ## Rate Limits
    
    60 requests/minute per key. Check headers:
    
    - `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`
    
    ## Error Codes
    
    | Code           | Meaning                   |
    | -------------- | ------------------------- |
    | AUTH_REQUIRED  | No auth provided          |
    | AUTH_FAILED    | Invalid key               |
    | FORBIDDEN      | Key type lacks permission |
    | RATE_LIMITED   | Too many requests         |
    | NOT_FOUND      | File doesn't exist        |
    | INVALID_PATH   | Path traversal or invalid |
    | DEPTH_EXCEEDED | Directory depth > 20      |
    
    ## Common Patterns
    
    ### Persist session notes
    
    ```bash
    # Save
    curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
      -d "{\"path\":\"sessions/$(date +%Y-%m-%d).md\",\"content\":\"# Session Notes\\n...\"}" \
      https://aifs.space/api/write
    
    # Retrieve
    curl -H "Authorization: Bearer $KEY" "https://aifs.space/api/read?path=sessions/2024-01-15.md"
    ```
    
    ### Organize by project
    
    ```
    projects/
    ā”œā”€ā”€ alpha/
    │   ā”œā”€ā”€ README.md
    │   └── notes.md
    └── beta/
        └── spec.md
    ```
    
    ### Append to log (read + write)
    
    ```bash
    # Read existing
    EXISTING=$(curl -s -H "Authorization: Bearer $KEY" "https://aifs.space/api/read?path=log.txt" | jq -r .content)
    
    # Append and write back
    curl -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
      -d "{\"path\":\"log.txt\",\"content\":\"$EXISTING\\n$(date): New entry\"}" \
      https://aifs.space/api/write
    ```