{"id":"bc79b659-2198-4ece-9d72-24af402359d7","entityType":"agent","slug":"clawhub-snowsand-enterprises-snowsand-familywall","name":"FamilyWall","canonicalUrl":"https://www.xpersona.co/agent/clawhub-snowsand-enterprises-snowsand-familywall","canonicalPath":"/agent/clawhub-snowsand-enterprises-snowsand-familywall","generatedAt":"2026-10-11T21:00:32.332Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":null},"description":"Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec... Skill: FamilyWall Owner: snowsand-enterprises Summary: Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec... Tags: latest:1.3.0 Version history: v1.3.0 | 2026-05-18T13:54:46.787Z | user Add media downloading support: list media in threads, download by URL/media-ID, download-all from thread. Messages and wall pos","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17af02vwj1vmnywrtwrck94bh86jxwh:snowsand-familywall","sourceUrl":"https://clawhub.ai/snowsand-enterprises/snowsand-familywall","homepage":"https://clawhub.ai/snowsand-enterprises/skills/snowsand-familywall","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/snowsand-enterprises/snowsand-familywall","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/snowsand-enterprises/skills/snowsand-familywall","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":null},"stars":null,"forks":null,"downloads":1017,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.3.0","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:36:43.667Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T17:36:43.789Z","lastCrawledAt":"2026-10-11T17:36:43.667Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T17:36:43.667Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.0","createdAt":"2026-05-18T13:54:46.787Z","changelog":"Add media downloading support: list media in threads, download by URL/media-ID, download-all from thread. Messages and wall posts now include media attachment metadata (photos, audio, video). Wall/feed posts also expose media arrays.","fileCount":5,"zipByteSize":14856},{"version":"1.2.0","createdAt":"2026-05-15T14:30:10.143Z","changelog":"Moved htmlformdef.js API reference to Confluence; removed references/ directory from published skill to reduce package size by ~559KB","fileCount":4,"zipByteSize":10606},{"version":"1.1.0","createdAt":"2026-05-15T01:12:37.697Z","changelog":"Added meal planning and recipe management","fileCount":5,"zipByteSize":107105},{"version":"1.0.0","createdAt":"2026-05-12T21:44:55.757Z","changelog":"Initial release: calendar events, shopping/task lists, messaging, location, and wall/feed","fileCount":5,"zipByteSize":105746}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17af02vwj1vmnywrtwrck94bh86jxwh:snowsand-familywall","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T21:00:32.330Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-snowsand-enterprises-snowsand-familywall/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":null},"readme":"Skill: FamilyWall\n\nOwner: snowsand-enterprises\n\nSummary: Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec...\n\nTags: latest:1.3.0\n\nVersion history:\n\nv1.3.0 | 2026-05-18T13:54:46.787Z | user\n\nAdd media downloading support: list media in threads, download by URL/media-ID, download-all from thread. Messages and wall posts now include media attachment metadata (photos, audio, video). Wall/feed posts also expose media arrays.\n\nv1.2.0 | 2026-05-15T14:30:10.143Z | user\n\nMoved htmlformdef.js API reference to Confluence; removed references/ directory from published skill to reduce package size by ~559KB\n\nv1.1.0 | 2026-05-15T01:12:37.697Z | user\n\nAdded meal planning and recipe management\n\nv1.0.0 | 2026-05-12T21:44:55.757Z | user\n\nInitial release: calendar events, shopping/task lists, messaging, location, and wall/feed\n\nArchive index:\n\nArchive v1.3.0: 5 files, 14856 bytes\n\nFiles: scripts/client.py (21409b), scripts/familywall.py (21256b), skill-card.md (2354b), SKILL.md (11102b), _meta.json (138b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: familywall\nversion: 1.3.0\ndescription: >-\n  Interact with the FamilyWall family organization platform. Manage calendar events,\n  shopping lists, tasks, family messaging, member locations, meal plans, recipes,\n  the family wall/feed, and media file downloading.\n  Use when: (1) checking family calendar or creating events, (2) managing shopping lists\n  or to-do items, (3) sending/reading family messages, (4) checking family member locations,\n  (5) viewing the family wall/feed, (6) meal planning or recipe management,\n  (7) downloading photos, audio, or other media from messages.\n  Triggers: \"family calendar\", \"family events\", \"shopping list\", \"grocery list\",\n  \"family message\", \"family chat\", \"family location\", \"where is\", \"family wall\",\n  \"family feed\", \"add to list\", \"family members\", \"familywall\", \"meal plan\",\n  \"recipe\", \"what's for dinner\", \"weekly meals\", \"download photo\",\n  \"download media\", \"family photos\", \"message attachment\".\n---\n\n# FamilyWall Integration\n\nFamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.\n\n## Authentication\n\nFamilyWall uses email/password authentication with session tokens. Required environment variables:\n\n- `FAMILYWALL_EMAIL` - FamilyWall account email\n- `FAMILYWALL_PASSWORD` - FamilyWall account password\n\nThese should be set in `~/.openclaw/.env`.\n\nTest connection:\n```bash\nsource ~/.openclaw/.env && {baseDir}/scripts/familywall.py status\n```\n\n## Quick Reference\n\nAll operations use the `{baseDir}/scripts/familywall.py` script:\n\n| Operation | Command |\n|-----------|---------|\n| **Status & Members** | |\n| Account/family status | `{baseDir}/scripts/familywall.py status` |\n| List family members | `{baseDir}/scripts/familywall.py members` |\n| **Calendar Events** | |\n| List upcoming events | `{baseDir}/scripts/familywall.py events list --days 7` |\n| Create event | `{baseDir}/scripts/familywall.py events create \"Title\" --start \"2026-03-10T14:00:00\" --end \"2026-03-10T15:00:00\"` |\n| Create all-day event | `{baseDir}/scripts/familywall.py events create \"Holiday\" --start \"2026-03-10\" --end \"2026-03-11\" --allday` |\n| Delete event | `{baseDir}/scripts/familywall.py events delete EVENT_ID` |\n| **Shopping Lists / Tasks** | |\n| List all lists | `{baseDir}/scripts/familywall.py lists list` |\n| View list items | `{baseDir}/scripts/familywall.py lists items LIST_ID` |\n| Add item to list | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Milk\"` |\n| Add with quantity | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Eggs\" --quantity \"12\"` |\n| Check item (purchased) | `{baseDir}/scripts/familywall.py lists check ITEM_ID` |\n| Uncheck item | `{baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck` |\n| Create new list | `{baseDir}/scripts/familywall.py lists create \"Groceries\" --type SHOPPING` |\n| Create todo list | `{baseDir}/scripts/familywall.py lists create \"Chores\" --type TODO` |\n| **Messaging** | |\n| List threads | `{baseDir}/scripts/familywall.py messages threads` |\n| Read messages | `{baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20` |\n| Send message | `{baseDir}/scripts/familywall.py messages send THREAD_ID \"Hello family!\"` |\n| **Media** | |\n| List media in thread | `{baseDir}/scripts/familywall.py media list THREAD_ID` |\n| Download by URL | `{baseDir}/scripts/familywall.py media download --url \"PICTURE_URL\" -o file.jpg` |\n| Download by media ID | `{baseDir}/scripts/familywall.py media download --media-id MEDIA_ID --thread-id THREAD_ID` |\n| Download all from thread | `{baseDir}/scripts/familywall.py media download-all THREAD_ID --output-dir ./media` |\n| **Meal Planner** | |\n| View meal plan | `{baseDir}/scripts/familywall.py meals list --days 7` |\n| Add meal to plan | `{baseDir}/scripts/familywall.py meals add \"Tacos\" --date 2026-05-15 --type DINNER` |\n| **Recipes** | |\n| Create recipe | `{baseDir}/scripts/familywall.py recipes create \"Pasta\" --ingredients \"noodles\\nsauce\" --instructions \"1. Boil\\n2. Mix\"` |\n| Import recipe from URL | `{baseDir}/scripts/familywall.py recipes from-url \"https://example.com/recipe\"` |\n| List recipe categories | `{baseDir}/scripts/familywall.py recipes categories` |\n| **Location** | |\n| Get member locations | `{baseDir}/scripts/familywall.py locations` |\n| **Wall / Feed** | |\n| Get family wall | `{baseDir}/scripts/familywall.py wall --limit 20` |\n\n## Common Workflows\n\n### Check upcoming family events\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events list --days 7\n```\n\n### Add items to shopping list\n\n```bash\nsource ~/.openclaw/.env\n# First get the list ID\n{baseDir}/scripts/familywall.py lists list\n# Then add items\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Milk\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Bread\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Eggs\" --quantity \"12\"\n```\n\n### Create a calendar event\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events create \"Family Dinner\" \\\n  --start \"2026-05-15T18:00:00\" \\\n  --end \"2026-05-15T20:00:00\" \\\n  --location \"Home\" \\\n  --description \"Weekly family dinner\"\n```\n\n### Send a family message\n\n```bash\nsource ~/.openclaw/.env\n# Get thread list first\n{baseDir}/scripts/familywall.py messages threads\n# Send message to a thread\n{baseDir}/scripts/familywall.py messages send \"imthread/12345_67890\" \"Dinner is ready!\"\n```\n\n### Download media from messages\n\nMessages can contain photos, audio, and other media files. The `medias` array in message responses includes `pictureUrl` for downloading.\n\n```bash\nsource ~/.openclaw/.env\n# List all media in a thread\n{baseDir}/scripts/familywall.py media list \"imThread/12345\"\n\n# Download a specific file by URL (from media list output)\n{baseDir}/scripts/familywall.py media download --url \"https://api.familywall.com/media/...\" -o photo.jpg\n\n# Download by media ID (looks up the URL automatically)\n{baseDir}/scripts/familywall.py media download --media-id \"media/12345_67890\" --thread-id \"imThread/12345\"\n\n# Download ALL media from a thread into a directory\n{baseDir}/scripts/familywall.py media download-all \"imThread/12345\" --output-dir ./family_media\n\n# Download media from a specific message only\n{baseDir}/scripts/familywall.py media download-all \"imThread/12345\" --message-id \"message/12345_67890\" --output-dir ./media\n```\n\n### Plan meals for the week\n\n```bash\nsource ~/.openclaw/.env\n# View current meal plan\n{baseDir}/scripts/familywall.py meals list --days 7\n# Add meals\n{baseDir}/scripts/familywall.py meals add \"Spaghetti\" --date 2026-05-13 --type DINNER\n{baseDir}/scripts/familywall.py meals add \"Pancakes\" --date 2026-05-14 --type BREAKFAST\n{baseDir}/scripts/familywall.py meals add \"Grilled Chicken\" --date 2026-05-14 --type DINNER\n```\n\nMeal types: `BREAKFAST`, `LUNCH`, `DINNER`, `SNACK`\n\n### Create a recipe\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes create \"Banana Smoothie\" \\\n  --ingredients \"2 bananas\\n1 cup milk\\n1 tbsp honey\\nIce\" \\\n  --instructions \"1. Add all ingredients to blender\\n2. Blend until smooth\\n3. Serve immediately\" \\\n  --prep-time 5 --serves 2 \\\n  --description \"Quick healthy breakfast smoothie\"\n```\n\n### Import a recipe from a website\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes from-url \"https://www.example.com/recipe/chocolate-cake\"\n```\n\n### Check family member locations\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py locations\n```\n\n## API Details\n\nThe FamilyWall API is at `https://api.familywall.com/api`. Authentication is session-based:\n\n1. Login via `log2in` endpoint with email/password\n2. Receive JSESSIONID cookie and tokenCsrf\n3. Include both on subsequent requests\n\n### Key API Endpoints\n\n| Category | Endpoint | Description |\n|----------|----------|-------------|\n| Auth | `log2in` | Login with email/password |\n| Account | `accgetallfamily` | Get all family data |\n| Family | `famlistfamily` | List user's families |\n| Events | `evtlist` | List calendar events |\n| Events | `evtcreate` | Create event |\n| Events | `evtdelete` | Delete event |\n| Lists | `tasklistlist` | List all task/shopping lists |\n| Lists | `tasklistget` | Get list with items |\n| Lists | `tasklistadd` | Add item to list |\n| Lists | `tasklistcheck` | Check/uncheck item |\n| Lists | `tasklistcreate` | Create new list |\n| Messages | `imthreadlist` | List IM threads |\n| Messages | `immessagelist2` | Get messages from thread (includes media) |\n| Messages | `imsend` | Send message |\n| Media | `/media/...` | Download media files (GET with session auth) |\n| Location | `loclist` | Get member locations |\n| Wall | `walllist` | Get wall/feed posts |\n| Meals | `mplistinterval` | List planned meals in range |\n| Meals | `mpcreate` | Add dish to meal plan |\n| Meals | `mpmealput` | Create/edit a meal |\n| Recipes | `mprecipeput` | Create/edit a recipe |\n| Recipes | `mprecipeputbyurl` | Create recipe from URL |\n| Recipes | `mpcategorylist` | List recipe categories |\n| Recipes | `mpadditemtolist` | Add meal ingredients to shopping list |\n\n### Request Format\n\nAll requests are POST with `application/x-www-form-urlencoded` body. Parameters use prefix notation:\n- `a00` prefix for first call parameters\n- `a01call`, `a02call`, etc. for batched calls\n- `partnerScope=Family` required on all calls\n\n### Response Format\n\nResponses are JSON with structure:\n```json\n{\n  \"a00\": {\n    \"r\": {\"r\": <result_data>},  // Success\n    \"ex\": {\"ex\": {\"message\": \"...\"}},  // Error\n    \"cn\": \"endpoint_name\"\n  }\n}\n```\n\n### Media in Messages\n\nMessages from `immessagelist2` include a `medias` array. Each media object contains:\n\n| Field | Description |\n|-------|-------------|\n| `mediaId` | Unique media identifier (e.g. `media/12345_67890`) |\n| `pictureUrl` | Direct download URL (requires session auth cookie) |\n| `mimeType` | MIME type (`image/jpeg`, `audio/mp4`, etc.) |\n| `name` | Original filename |\n| `datasize` | File size in bytes |\n| `resolutionX/Y` | Image dimensions (images only) |\n| `durationMs` | Duration in milliseconds (audio/video only) |\n| `readystate` | Processing state (`READY` = downloadable) |\n\nTo download media, send an authenticated GET request to the `pictureUrl` with the JSESSIONID cookie and tokencsrf header.\n\nWall/feed posts may also contain media attachments with the same structure.\n\n## Error Handling\n\nCommon errors:\n- **FizClassId 1**: Account not found\n- **FizClassId 4**: Account identifier not validated\n- **FizClassId 10**: API key not found\n- **FizClassId 26**: Account blocked\n- **FizClassId 502**: Call not registered / missing parameter\n- **FizClassId 503**: Model does not exist\n- **FizClassId 510**: No family context (need to select family first)\n\n## Dependencies\n\n- Python 3.10+ (uses stdlib `urllib` if `requests` not available)\n- Optional: `requests` library for better HTTP handling\n\n## Full API Reference\n\nThe complete FamilyWall API reference (all endpoints, parameters, return types, and exceptions) is maintained on Confluence:\n\n**[FamilyWall — API Reference](https://snowsand.atlassian.net/wiki/spaces/SD/pages/38436865)**\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn71qrrcjfyx8bm6yea6wan0e182zevq\",\n  \"slug\": \"snowsand-familywall\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1779112486787\n}\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nInteract with the FamilyWall family organization platform to manage calendars, lists, tasks, messages, member locations, meal plans, recipes, wall/feed posts, and media downloads.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[snowsand-enterprises](https://clawhub.ai/user/snowsand-enterprises)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFamilyWall users and authorized assistants use this skill to read and update family organization data, including events, lists, messages, member locations, meals, recipes, wall posts, and media attachments.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Media download by URL can send FamilyWall session credentials to an arbitrary URL.\n\nMitigation: Use media download --url only with URLs copied directly from FamilyWall media listings, and prefer media-ID downloads when possible.\n\nRisk: Media download output paths can write files outside the intended download area.\n\nMitigation: Download media only into a dedicated empty directory and review output paths before use.\n\nRisk: Command outputs can expose private family data such as locations, member details, messages, and media metadata.\n\nMitigation: Run the skill only in trusted environments and keep generated outputs, logs, and downloaded files access-restricted.\n\n## Reference(s):\n\n- [FamilyWall API Reference](https://snowsand.atlassian.net/wiki/spaces/SD/pages/38436865)\n- [FamilyWall Skill Page](https://clawhub.ai/snowsand-enterprises/skills/snowsand-familywall)\n- [FamilyWall Publisher Profile](https://clawhub.ai/user/snowsand-enterprises)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Shell commands, Files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; CLI responses are JSON and media downloads are files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses FamilyWall account credentials from environment variables and can read or modify private family data.]\n\n## Skill Version(s):\n\n1.3.0 (source: SKILL.md frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.2.0: 4 files, 10606 bytes\n\nFiles: scripts/client.py (15867b), scripts/familywall.py (16247b), SKILL.md (8666b), _meta.json (138b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: familywall\nversion: 1.2.0\ndescription: >-\n  Interact with the FamilyWall family organization platform. Manage calendar events,\n  shopping lists, tasks, family messaging, member locations, meal plans, recipes,\n  and the family wall/feed.\n  Use when: (1) checking family calendar or creating events, (2) managing shopping lists\n  or to-do items, (3) sending/reading family messages, (4) checking family member locations,\n  (5) viewing the family wall/feed, (6) meal planning or recipe management.\n  Triggers: \"family calendar\", \"family events\", \"shopping list\", \"grocery list\",\n  \"family message\", \"family chat\", \"family location\", \"where is\", \"family wall\",\n  \"family feed\", \"add to list\", \"family members\", \"familywall\", \"meal plan\",\n  \"recipe\", \"what's for dinner\", \"weekly meals\".\n---\n\n# FamilyWall Integration\n\nFamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.\n\n## Authentication\n\nFamilyWall uses email/password authentication with session tokens. Required environment variables:\n\n- `FAMILYWALL_EMAIL` - FamilyWall account email\n- `FAMILYWALL_PASSWORD` - FamilyWall account password\n\nThese should be set in `~/.openclaw/.env`.\n\nTest connection:\n```bash\nsource ~/.openclaw/.env && {baseDir}/scripts/familywall.py status\n```\n\n## Quick Reference\n\nAll operations use the `{baseDir}/scripts/familywall.py` script:\n\n| Operation | Command |\n|-----------|---------|\n| **Status & Members** | |\n| Account/family status | `{baseDir}/scripts/familywall.py status` |\n| List family members | `{baseDir}/scripts/familywall.py members` |\n| **Calendar Events** | |\n| List upcoming events | `{baseDir}/scripts/familywall.py events list --days 7` |\n| Create event | `{baseDir}/scripts/familywall.py events create \"Title\" --start \"2026-03-10T14:00:00\" --end \"2026-03-10T15:00:00\"` |\n| Create all-day event | `{baseDir}/scripts/familywall.py events create \"Holiday\" --start \"2026-03-10\" --end \"2026-03-11\" --allday` |\n| Delete event | `{baseDir}/scripts/familywall.py events delete EVENT_ID` |\n| **Shopping Lists / Tasks** | |\n| List all lists | `{baseDir}/scripts/familywall.py lists list` |\n| View list items | `{baseDir}/scripts/familywall.py lists items LIST_ID` |\n| Add item to list | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Milk\"` |\n| Add with quantity | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Eggs\" --quantity \"12\"` |\n| Check item (purchased) | `{baseDir}/scripts/familywall.py lists check ITEM_ID` |\n| Uncheck item | `{baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck` |\n| Create new list | `{baseDir}/scripts/familywall.py lists create \"Groceries\" --type SHOPPING` |\n| Create todo list | `{baseDir}/scripts/familywall.py lists create \"Chores\" --type TODO` |\n| **Messaging** | |\n| List threads | `{baseDir}/scripts/familywall.py messages threads` |\n| Read messages | `{baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20` |\n| Send message | `{baseDir}/scripts/familywall.py messages send THREAD_ID \"Hello family!\"` |\n| **Meal Planner** | |\n| View meal plan | `{baseDir}/scripts/familywall.py meals list --days 7` |\n| Add meal to plan | `{baseDir}/scripts/familywall.py meals add \"Tacos\" --date 2026-05-15 --type DINNER` |\n| **Recipes** | |\n| Create recipe | `{baseDir}/scripts/familywall.py recipes create \"Pasta\" --ingredients \"noodles\\nsauce\" --instructions \"1. Boil\\n2. Mix\"` |\n| Import recipe from URL | `{baseDir}/scripts/familywall.py recipes from-url \"https://example.com/recipe\"` |\n| List recipe categories | `{baseDir}/scripts/familywall.py recipes categories` |\n| **Location** | |\n| Get member locations | `{baseDir}/scripts/familywall.py locations` |\n| **Wall / Feed** | |\n| Get family wall | `{baseDir}/scripts/familywall.py wall --limit 20` |\n\n## Common Workflows\n\n### Check upcoming family events\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events list --days 7\n```\n\n### Add items to shopping list\n\n```bash\nsource ~/.openclaw/.env\n# First get the list ID\n{baseDir}/scripts/familywall.py lists list\n# Then add items\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Milk\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Bread\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Eggs\" --quantity \"12\"\n```\n\n### Create a calendar event\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events create \"Family Dinner\" \\\n  --start \"2026-05-15T18:00:00\" \\\n  --end \"2026-05-15T20:00:00\" \\\n  --location \"Home\" \\\n  --description \"Weekly family dinner\"\n```\n\n### Send a family message\n\n```bash\nsource ~/.openclaw/.env\n# Get thread list first\n{baseDir}/scripts/familywall.py messages threads\n# Send message to a thread\n{baseDir}/scripts/familywall.py messages send \"imthread/12345_67890\" \"Dinner is ready!\"\n```\n\n### Plan meals for the week\n\n```bash\nsource ~/.openclaw/.env\n# View current meal plan\n{baseDir}/scripts/familywall.py meals list --days 7\n# Add meals\n{baseDir}/scripts/familywall.py meals add \"Spaghetti\" --date 2026-05-13 --type DINNER\n{baseDir}/scripts/familywall.py meals add \"Pancakes\" --date 2026-05-14 --type BREAKFAST\n{baseDir}/scripts/familywall.py meals add \"Grilled Chicken\" --date 2026-05-14 --type DINNER\n```\n\nMeal types: `BREAKFAST`, `LUNCH`, `DINNER`, `SNACK`\n\n### Create a recipe\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes create \"Banana Smoothie\" \\\n  --ingredients \"2 bananas\\n1 cup milk\\n1 tbsp honey\\nIce\" \\\n  --instructions \"1. Add all ingredients to blender\\n2. Blend until smooth\\n3. Serve immediately\" \\\n  --prep-time 5 --serves 2 \\\n  --description \"Quick healthy breakfast smoothie\"\n```\n\n### Import a recipe from a website\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes from-url \"https://www.example.com/recipe/chocolate-cake\"\n```\n\n### Check family member locations\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py locations\n```\n\n## API Details\n\nThe FamilyWall API is at `https://api.familywall.com/api`. Authentication is session-based:\n\n1. Login via `log2in` endpoint with email/password\n2. Receive JSESSIONID cookie and tokenCsrf\n3. Include both on subsequent requests\n\n### Key API Endpoints\n\n| Category | Endpoint | Description |\n|----------|----------|-------------|\n| Auth | `log2in` | Login with email/password |\n| Account | `accgetallfamily` | Get all family data |\n| Family | `famlistfamily` | List user's families |\n| Events | `evtlist` | List calendar events |\n| Events | `evtcreate` | Create event |\n| Events | `evtdelete` | Delete event |\n| Lists | `tasklistlist` | List all task/shopping lists |\n| Lists | `tasklistget` | Get list with items |\n| Lists | `tasklistadd` | Add item to list |\n| Lists | `tasklistcheck` | Check/uncheck item |\n| Lists | `tasklistcreate` | Create new list |\n| Messages | `imthreadlist` | List IM threads |\n| Messages | `immessagelist` | Get messages from thread |\n| Messages | `imsend` | Send message |\n| Location | `loclist` | Get member locations |\n| Wall | `walllist` | Get wall/feed posts |\n| Meals | `mplistinterval` | List planned meals in range |\n| Meals | `mpcreate` | Add dish to meal plan |\n| Meals | `mpmealput` | Create/edit a meal |\n| Recipes | `mprecipeput` | Create/edit a recipe |\n| Recipes | `mprecipeputbyurl` | Create recipe from URL |\n| Recipes | `mpcategorylist` | List recipe categories |\n| Recipes | `mpadditemtolist` | Add meal ingredients to shopping list |\n\n### Request Format\n\nAll requests are POST with `application/x-www-form-urlencoded` body. Parameters use prefix notation:\n- `a00` prefix for first call parameters\n- `a01call`, `a02call`, etc. for batched calls\n- `partnerScope=Family` required on all calls\n\n### Response Format\n\nResponses are JSON with structure:\n```json\n{\n  \"a00\": {\n    \"r\": {\"r\": <result_data>},  // Success\n    \"ex\": {\"ex\": {\"message\": \"...\"}},  // Error\n    \"cn\": \"endpoint_name\"\n  }\n}\n```\n\n## Error Handling\n\nCommon errors:\n- **FizClassId 1**: Account not found\n- **FizClassId 4**: Account identifier not validated\n- **FizClassId 10**: API key not found\n- **FizClassId 26**: Account blocked\n- **FizClassId 502**: Call not registered / missing parameter\n- **FizClassId 503**: Model does not exist\n- **FizClassId 510**: No family context (need to select family first)\n\n## Dependencies\n\n- Python 3.10+ (uses stdlib `urllib` if `requests` not available)\n- Optional: `requests` library for better HTTP handling\n\n## Full API Reference\n\nThe complete FamilyWall API reference (all endpoints, parameters, return types, and exceptions) is maintained on Confluence:\n\n**[FamilyWall — API Reference](https://snowsand.atlassian.net/wiki/spaces/SD/pages/38436865)**\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn71qrrcjfyx8bm6yea6wan0e182zevq\",\n  \"slug\": \"snowsand-familywall\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1778855410143\n}\n\nArchive v1.1.0: 5 files, 107105 bytes\n\nFiles: references/htmlformdef.js (558931b), scripts/client.py (15867b), scripts/familywall.py (16247b), SKILL.md (9356b), _meta.json (138b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: familywall\nversion: 1.1.0\ndescription: >-\n  Interact with the FamilyWall family organization platform. Manage calendar events,\n  shopping lists, tasks, family messaging, member locations, meal plans, recipes,\n  and the family wall/feed.\n  Use when: (1) checking family calendar or creating events, (2) managing shopping lists\n  or to-do items, (3) sending/reading family messages, (4) checking family member locations,\n  (5) viewing the family wall/feed, (6) meal planning or recipe management.\n  Triggers: \"family calendar\", \"family events\", \"shopping list\", \"grocery list\",\n  \"family message\", \"family chat\", \"family location\", \"where is\", \"family wall\",\n  \"family feed\", \"add to list\", \"family members\", \"familywall\", \"meal plan\",\n  \"recipe\", \"what's for dinner\", \"weekly meals\".\n---\n\n# FamilyWall Integration\n\nFamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.\n\n## Authentication\n\nFamilyWall uses email/password authentication with session tokens. Required environment variables:\n\n- `FAMILYWALL_EMAIL` - FamilyWall account email\n- `FAMILYWALL_PASSWORD` - FamilyWall account password\n\nThese should be set in `~/.openclaw/.env`.\n\nTest connection:\n```bash\nsource ~/.openclaw/.env && {baseDir}/scripts/familywall.py status\n```\n\n## Quick Reference\n\nAll operations use the `{baseDir}/scripts/familywall.py` script:\n\n| Operation | Command |\n|-----------|---------|\n| **Status & Members** | |\n| Account/family status | `{baseDir}/scripts/familywall.py status` |\n| List family members | `{baseDir}/scripts/familywall.py members` |\n| **Calendar Events** | |\n| List upcoming events | `{baseDir}/scripts/familywall.py events list --days 7` |\n| Create event | `{baseDir}/scripts/familywall.py events create \"Title\" --start \"2026-03-10T14:00:00\" --end \"2026-03-10T15:00:00\"` |\n| Create all-day event | `{baseDir}/scripts/familywall.py events create \"Holiday\" --start \"2026-03-10\" --end \"2026-03-11\" --allday` |\n| Delete event | `{baseDir}/scripts/familywall.py events delete EVENT_ID` |\n| **Shopping Lists / Tasks** | |\n| List all lists | `{baseDir}/scripts/familywall.py lists list` |\n| View list items | `{baseDir}/scripts/familywall.py lists items LIST_ID` |\n| Add item to list | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Milk\"` |\n| Add with quantity | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Eggs\" --quantity \"12\"` |\n| Check item (purchased) | `{baseDir}/scripts/familywall.py lists check ITEM_ID` |\n| Uncheck item | `{baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck` |\n| Create new list | `{baseDir}/scripts/familywall.py lists create \"Groceries\" --type SHOPPING` |\n| Create todo list | `{baseDir}/scripts/familywall.py lists create \"Chores\" --type TODO` |\n| **Messaging** | |\n| List threads | `{baseDir}/scripts/familywall.py messages threads` |\n| Read messages | `{baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20` |\n| Send message | `{baseDir}/scripts/familywall.py messages send THREAD_ID \"Hello family!\"` |\n| **Meal Planner** | |\n| View meal plan | `{baseDir}/scripts/familywall.py meals list --days 7` |\n| Add meal to plan | `{baseDir}/scripts/familywall.py meals add \"Tacos\" --date 2026-05-15 --type DINNER` |\n| **Recipes** | |\n| Create recipe | `{baseDir}/scripts/familywall.py recipes create \"Pasta\" --ingredients \"noodles\\nsauce\" --instructions \"1. Boil\\n2. Mix\"` |\n| Import recipe from URL | `{baseDir}/scripts/familywall.py recipes from-url \"https://example.com/recipe\"` |\n| List recipe categories | `{baseDir}/scripts/familywall.py recipes categories` |\n| **Location** | |\n| Get member locations | `{baseDir}/scripts/familywall.py locations` |\n| **Wall / Feed** | |\n| Get family wall | `{baseDir}/scripts/familywall.py wall --limit 20` |\n\n## Common Workflows\n\n### Check upcoming family events\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events list --days 7\n```\n\n### Add items to shopping list\n\n```bash\nsource ~/.openclaw/.env\n# First get the list ID\n{baseDir}/scripts/familywall.py lists list\n# Then add items\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Milk\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Bread\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Eggs\" --quantity \"12\"\n```\n\n### Create a calendar event\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events create \"Family Dinner\" \\\n  --start \"2026-05-15T18:00:00\" \\\n  --end \"2026-05-15T20:00:00\" \\\n  --location \"Home\" \\\n  --description \"Weekly family dinner\"\n```\n\n### Send a family message\n\n```bash\nsource ~/.openclaw/.env\n# Get thread list first\n{baseDir}/scripts/familywall.py messages threads\n# Send message to a thread\n{baseDir}/scripts/familywall.py messages send \"imthread/12345_67890\" \"Dinner is ready!\"\n```\n\n### Plan meals for the week\n\n```bash\nsource ~/.openclaw/.env\n# View current meal plan\n{baseDir}/scripts/familywall.py meals list --days 7\n# Add meals\n{baseDir}/scripts/familywall.py meals add \"Spaghetti\" --date 2026-05-13 --type DINNER\n{baseDir}/scripts/familywall.py meals add \"Pancakes\" --date 2026-05-14 --type BREAKFAST\n{baseDir}/scripts/familywall.py meals add \"Grilled Chicken\" --date 2026-05-14 --type DINNER\n```\n\nMeal types: `BREAKFAST`, `LUNCH`, `DINNER`, `SNACK`\n\n### Create a recipe\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes create \"Banana Smoothie\" \\\n  --ingredients \"2 bananas\\n1 cup milk\\n1 tbsp honey\\nIce\" \\\n  --instructions \"1. Add all ingredients to blender\\n2. Blend until smooth\\n3. Serve immediately\" \\\n  --prep-time 5 --serves 2 \\\n  --description \"Quick healthy breakfast smoothie\"\n```\n\n### Import a recipe from a website\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py recipes from-url \"https://www.example.com/recipe/chocolate-cake\"\n```\n\n### Check family member locations\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py locations\n```\n\n## API Details\n\nThe FamilyWall API is at `https://api.familywall.com/api`. Authentication is session-based:\n\n1. Login via `log2in` endpoint with email/password\n2. Receive JSESSIONID cookie and tokenCsrf\n3. Include both on subsequent requests\n\n### Key API Endpoints\n\n| Category | Endpoint | Description |\n|----------|----------|-------------|\n| Auth | `log2in` | Login with email/password |\n| Account | `accgetallfamily` | Get all family data |\n| Family | `famlistfamily` | List user's families |\n| Events | `evtlist` | List calendar events |\n| Events | `evtcreate` | Create event |\n| Events | `evtdelete` | Delete event |\n| Lists | `tasklistlist` | List all task/shopping lists |\n| Lists | `tasklistget` | Get list with items |\n| Lists | `tasklistadd` | Add item to list |\n| Lists | `tasklistcheck` | Check/uncheck item |\n| Lists | `tasklistcreate` | Create new list |\n| Messages | `imthreadlist` | List IM threads |\n| Messages | `immessagelist` | Get messages from thread |\n| Messages | `imsend` | Send message |\n| Location | `loclist` | Get member locations |\n| Wall | `walllist` | Get wall/feed posts |\n| Meals | `mplistinterval` | List planned meals in range |\n| Meals | `mpcreate` | Add dish to meal plan |\n| Meals | `mpmealput` | Create/edit a meal |\n| Recipes | `mprecipeput` | Create/edit a recipe |\n| Recipes | `mprecipeputbyurl` | Create recipe from URL |\n| Recipes | `mpcategorylist` | List recipe categories |\n| Recipes | `mpadditemtolist` | Add meal ingredients to shopping list |\n\n### Request Format\n\nAll requests are POST with `application/x-www-form-urlencoded` body. Parameters use prefix notation:\n- `a00` prefix for first call parameters\n- `a01call`, `a02call`, etc. for batched calls\n- `partnerScope=Family` required on all calls\n\n### Response Format\n\nResponses are JSON with structure:\n```json\n{\n  \"a00\": {\n    \"r\": {\"r\": <result_data>},  // Success\n    \"ex\": {\"ex\": {\"message\": \"...\"}},  // Error\n    \"cn\": \"endpoint_name\"\n  }\n}\n```\n\n## Error Handling\n\nCommon errors:\n- **FizClassId 1**: Account not found\n- **FizClassId 4**: Account identifier not validated\n- **FizClassId 10**: API key not found\n- **FizClassId 26**: Account blocked\n- **FizClassId 502**: Call not registered / missing parameter\n- **FizClassId 503**: Model does not exist\n- **FizClassId 510**: No family context (need to select family first)\n\n## Dependencies\n\n- Python 3.10+ (uses stdlib `urllib` if `requests` not available)\n- Optional: `requests` library for better HTTP handling\n\n## Full API Reference\n\nThe complete API definition is stored at `{baseDir}/references/htmlformdef.js` (559KB).\nThis contains all endpoints, parameters, return types, and exceptions for the entire FamilyWall platform.\n\nAvailable API categories:\n- `acc` - Account management\n- `admin` - Family admin rights\n- `album` - Photo/media\n- `billing` - Credits, subscriptions\n- `budget` - Family budgets\n- `color` - Color palette\n- `credit` - Premium management\n- `ctc` - Contacts\n- `device` - Push notifications\n- `evt` - Calendar events\n- `fam` - Family management, invitations\n- `filer` - File storage\n- `geo` - Geocoding\n- `google` - Google calendar sync\n- `im` - Instant messaging\n- `key` - API keys\n- `launchpad` - Dashboard\n- `loc` - Location, geofencing\n- `log2` - Authentication\n- `prf` - Profiles\n- `recipe` - Recipes\n- `settings` - Family settings\n- `tasklist` - Shopping/task lists\n- `wall` - Family wall/feed\n- `web` - Web utilities\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn71qrrcjfyx8bm6yea6wan0e182zevq\",\n  \"slug\": \"snowsand-familywall\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1778807557697\n}\n\nArchive v1.0.0: 5 files, 105746 bytes\n\nFiles: references/htmlformdef.js (558931b), scripts/client.py (15867b), scripts/familywall.py (12148b), SKILL.md (7257b), _meta.json (138b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: familywall\nversion: 1.0.0\ndescription: >-\n  Interact with the FamilyWall family organization platform. Manage calendar events,\n  shopping lists, tasks, family messaging, member locations, and the family wall/feed.\n  Use when: (1) checking family calendar or creating events, (2) managing shopping lists\n  or to-do items, (3) sending/reading family messages, (4) checking family member locations,\n  (5) viewing the family wall/feed.\n  Triggers: \"family calendar\", \"family events\", \"shopping list\", \"grocery list\",\n  \"family message\", \"family chat\", \"family location\", \"where is\", \"family wall\",\n  \"family feed\", \"add to list\", \"family members\", \"familywall\".\n---\n\n# FamilyWall Integration\n\nFamilyWall family organization platform integration for managing calendars, lists, messaging, and more.\n\n## Authentication\n\nFamilyWall uses email/password authentication with session tokens. Required environment variables:\n\n- `FAMILYWALL_EMAIL` - FamilyWall account email\n- `FAMILYWALL_PASSWORD` - FamilyWall account password\n\nThese should be set in `~/.openclaw/.env`.\n\nTest connection:\n```bash\nsource ~/.openclaw/.env && {baseDir}/scripts/familywall.py status\n```\n\n## Quick Reference\n\nAll operations use the `{baseDir}/scripts/familywall.py` script:\n\n| Operation | Command |\n|-----------|---------|\n| **Status & Members** | |\n| Account/family status | `{baseDir}/scripts/familywall.py status` |\n| List family members | `{baseDir}/scripts/familywall.py members` |\n| **Calendar Events** | |\n| List upcoming events | `{baseDir}/scripts/familywall.py events list --days 7` |\n| Create event | `{baseDir}/scripts/familywall.py events create \"Title\" --start \"2026-03-10T14:00:00\" --end \"2026-03-10T15:00:00\"` |\n| Create all-day event | `{baseDir}/scripts/familywall.py events create \"Holiday\" --start \"2026-03-10\" --end \"2026-03-11\" --allday` |\n| Delete event | `{baseDir}/scripts/familywall.py events delete EVENT_ID` |\n| **Shopping Lists / Tasks** | |\n| List all lists | `{baseDir}/scripts/familywall.py lists list` |\n| View list items | `{baseDir}/scripts/familywall.py lists items LIST_ID` |\n| Add item to list | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Milk\"` |\n| Add with quantity | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Eggs\" --quantity \"12\"` |\n| Check item (purchased) | `{baseDir}/scripts/familywall.py lists check ITEM_ID` |\n| Uncheck item | `{baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck` |\n| Create new list | `{baseDir}/scripts/familywall.py lists create \"Groceries\" --type SHOPPING` |\n| Create todo list | `{baseDir}/scripts/familywall.py lists create \"Chores\" --type TODO` |\n| **Messaging** | |\n| List threads | `{baseDir}/scripts/familywall.py messages threads` |\n| Read messages | `{baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20` |\n| Send message | `{baseDir}/scripts/familywall.py messages send THREAD_ID \"Hello family!\"` |\n| **Location** | |\n| Get member locations | `{baseDir}/scripts/familywall.py locations` |\n| **Wall / Feed** | |\n| Get family wall | `{baseDir}/scripts/familywall.py wall --limit 20` |\n\n## Common Workflows\n\n### Check upcoming family events\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events list --days 7\n```\n\n### Add items to shopping list\n\n```bash\nsource ~/.openclaw/.env\n# First get the list ID\n{baseDir}/scripts/familywall.py lists list\n# Then add items\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Milk\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Bread\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Eggs\" --quantity \"12\"\n```\n\n### Create a calendar event\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events create \"Family Dinner\" \\\n  --start \"2026-05-15T18:00:00\" \\\n  --end \"2026-05-15T20:00:00\" \\\n  --location \"Home\" \\\n  --description \"Weekly family dinner\"\n```\n\n### Send a family message\n\n```bash\nsource ~/.openclaw/.env\n# Get thread list first\n{baseDir}/scripts/familywall.py messages threads\n# Send message to a thread\n{baseDir}/scripts/familywall.py messages send \"imthread/12345_67890\" \"Dinner is ready!\"\n```\n\n### Check family member locations\n\n```bash\nsource ~/.openclaw/.env\n{baseDir}/scripts/familywall.py locations\n```\n\n## API Details\n\nThe FamilyWall API is at `https://api.familywall.com/api`. Authentication is session-based:\n\n1. Login via `log2in` endpoint with email/password\n2. Receive JSESSIONID cookie and tokenCsrf\n3. Include both on subsequent requests\n\n### Key API Endpoints\n\n| Category | Endpoint | Description |\n|----------|----------|-------------|\n| Auth | `log2in` | Login with email/password |\n| Account | `accgetallfamily` | Get all family data |\n| Family | `famlistfamily` | List user's families |\n| Events | `evtlist` | List calendar events |\n| Events | `evtcreate` | Create event |\n| Events | `evtdelete` | Delete event |\n| Lists | `tasklistlist` | List all task/shopping lists |\n| Lists | `tasklistget` | Get list with items |\n| Lists | `tasklistadd` | Add item to list |\n| Lists | `tasklistcheck` | Check/uncheck item |\n| Lists | `tasklistcreate` | Create new list |\n| Messages | `imthreadlist` | List IM threads |\n| Messages | `immessagelist` | Get messages from thread |\n| Messages | `imsend` | Send message |\n| Location | `loclist` | Get member locations |\n| Wall | `walllist` | Get wall/feed posts |\n\n### Request Format\n\nAll requests are POST with `application/x-www-form-urlencoded` body. Parameters use prefix notation:\n- `a00` prefix for first call parameters\n- `a01call`, `a02call`, etc. for batched calls\n- `partnerScope=Family` required on all calls\n\n### Response Format\n\nResponses are JSON with structure:\n```json\n{\n  \"a00\": {\n    \"r\": {\"r\": <result_data>},  // Success\n    \"ex\": {\"ex\": {\"message\": \"...\"}},  // Error\n    \"cn\": \"endpoint_name\"\n  }\n}\n```\n\n## Error Handling\n\nCommon errors:\n- **FizClassId 1**: Account not found\n- **FizClassId 4**: Account identifier not validated\n- **FizClassId 10**: API key not found\n- **FizClassId 26**: Account blocked\n- **FizClassId 502**: Call not registered / missing parameter\n- **FizClassId 503**: Model does not exist\n- **FizClassId 510**: No family context (need to select family first)\n\n## Dependencies\n\n- Python 3.10+ (uses stdlib `urllib` if `requests` not available)\n- Optional: `requests` library for better HTTP handling\n\n## Full API Reference\n\nThe complete API definition is stored at `{baseDir}/references/htmlformdef.js` (559KB).\nThis contains all endpoints, parameters, return types, and exceptions for the entire FamilyWall platform.\n\nAvailable API categories:\n- `acc` - Account management\n- `admin` - Family admin rights\n- `album` - Photo/media\n- `billing` - Credits, subscriptions\n- `budget` - Family budgets\n- `color` - Color palette\n- `credit` - Premium management\n- `ctc` - Contacts\n- `device` - Push notifications\n- `evt` - Calendar events\n- `fam` - Family management, invitations\n- `filer` - File storage\n- `geo` - Geocoding\n- `google` - Google calendar sync\n- `im` - Instant messaging\n- `key` - API keys\n- `launchpad` - Dashboard\n- `loc` - Location, geofencing\n- `log2` - Authentication\n- `prf` - Profiles\n- `recipe` - Recipes\n- `settings` - Family settings\n- `tasklist` - Shopping/task lists\n- `wall` - Family wall/feed\n- `web` - Web utilities\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn71qrrcjfyx8bm6yea6wan0e182zevq\",\n  \"slug\": \"snowsand-familywall\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778622295757\n}","readmeExcerpt":"Skill: FamilyWall Owner: snowsand-enterprises Summary: Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec... Tags: latest:1.3.0 Version history: v1.3.0 | 2026-05-18T13:54:46.787Z | user Add media downloading support: list media in threads, download by URL/media-ID, download-all from thread. Messages and wall pos","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"source ~/.openclaw/.env && {baseDir}/scripts/familywall.py status"},{"language":"bash","snippet":"source ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events list --days 7"},{"language":"bash","snippet":"source ~/.openclaw/.env\n# First get the list ID\n{baseDir}/scripts/familywall.py lists list\n# Then add items\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Milk\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Bread\"\n{baseDir}/scripts/familywall.py lists add \"tasklist/12345_67890\" \"Eggs\" --quantity \"12\""},{"language":"bash","snippet":"source ~/.openclaw/.env\n{baseDir}/scripts/familywall.py events create \"Family Dinner\" \\\n  --start \"2026-05-15T18:00:00\" \\\n  --end \"2026-05-15T20:00:00\" \\\n  --location \"Home\" \\\n  --description \"Weekly family dinner\""},{"language":"bash","snippet":"source ~/.openclaw/.env\n# Get thread list first\n{baseDir}/scripts/familywall.py messages threads\n# Send message to a thread\n{baseDir}/scripts/familywall.py messages send \"imthread/12345_67890\" \"Dinner is ready!\""},{"language":"bash","snippet":"source ~/.openclaw/.env\n# List all media in a thread\n{baseDir}/scripts/familywall.py media list \"imThread/12345\"\n\n# Download a specific file by URL (from media list output)\n{baseDir}/scripts/familywall.py media download --url \"https://api.familywall.com/media/...\" -o photo.jpg\n\n# Download by media ID (looks up the URL automatically)\n{baseDir}/scripts/familywall.py media download --media-id \"media/12345_67890\" --thread-id \"imThread/12345\"\n\n# Download ALL media from a thread into a directory\n{baseDir}/scripts/familywall.py media download-all \"imThread/12345\" --output-dir ./family_media\n\n# Download media from a specific message only\n{baseDir}/scripts/familywall.py media download-all \"imThread/12345\" --message-id \"message/12345_67890\" --output-dir ./media"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: familywall\nversion: 1.3.0\ndescription: >-\n  Interact with the FamilyWall family organization platform. Manage calendar events,\n  shopping lists, tasks, family messaging, member locations, meal plans, recipes,\n  the family wall/feed, and media file downloading.\n  Use when: (1) checking family calendar or creating events, (2) managing shopping lists\n  or to-do items, (3) sending/reading family messages, (4) checking family member locations,\n  (5) viewing the family wall/feed, (6) meal planning or recipe management,\n  (7) downloading photos, audio, or other media from messages.\n  Triggers: \"family calendar\", \"family events\", \"shopping list\", \"grocery list\",\n  \"family message\", \"family chat\", \"family location\", \"where is\", \"family wall\",\n  \"family feed\", \"add to list\", \"family members\", \"familywall\", \"meal plan\",\n  \"recipe\", \"what's for dinner\", \"weekly meals\", \"download photo\",\n  \"download media\", \"family photos\", \"message attachment\".\n---\n\n# FamilyWall Integration\n\nFamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.\n\n## Authentication\n\nFamilyWall uses email/password authentication with session tokens. Required environment variables:\n\n- `FAMILYWALL_EMAIL` - FamilyWall account email\n- `FAMILYWALL_PASSWORD` - FamilyWall account password\n\nThese should be set in `~/.openclaw/.env`.\n\nTest connection:\n```bash\nsource ~/.openclaw/.env && {baseDir}/scripts/familywall.py status\n```\n\n## Quick Reference\n\nAll operations use the `{baseDir}/scripts/familywall.py` script:\n\n| Operation | Command |\n|-----------|---------|\n| **Status & Members** | |\n| Account/family status | `{baseDir}/scripts/familywall.py status` |\n| List family members | `{baseDir}/scripts/familywall.py members` |\n| **Calendar Events** | |\n| List upcoming events | `{baseDir}/scripts/familywall.py events list --days 7` |\n| Create event | `{baseDir}/scripts/familywall.py events create \"Title\" --start \"2026-03-10T14:00:00\" --end \"2026-03-10T15:00:00\"` |\n| Create all-day event | `{baseDir}/scripts/familywall.py events create \"Holiday\" --start \"2026-03-10\" --end \"2026-03-11\" --allday` |\n| Delete event | `{baseDir}/scripts/familywall.py events delete EVENT_ID` |\n| **Shopping Lists / Tasks** | |\n| List all lists | `{baseDir}/scripts/familywall.py lists list` |\n| View list items | `{baseDir}/scripts/familywall.py lists items LIST_ID` |\n| Add item to list | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Milk\"` |\n| Add with quantity | `{baseDir}/scripts/familywall.py lists add LIST_ID \"Eggs\" --quantity \"12\"` |\n| Check item (purchased) | `{baseDir}/scripts/familywall.py lists check ITEM_ID` |\n| Uncheck item | `{baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck` |\n| Create new list | `{baseDir}/scripts/familywall.py lists create \"Groceries\" --type SHOPPING` |\n| Create todo list | `{baseDir}/scripts/familywall.py lists create \"Chores\" --type TODO` |\n| **Messaging** | |\n| List threads | `{baseDir}/scripts/familywal"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn71qrrcjfyx8bm6yea6wan0e182zevq\",\n  \"slug\": \"snowsand-familywall\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1779112486787\n}"},{"path":"skill-card.md","content":"## Description:\n\nInteract with the FamilyWall family organization platform to manage calendars, lists, tasks, messages, member locations, meal plans, recipes, wall/feed posts, and media downloads.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[snowsand-enterprises](https://clawhub.ai/user/snowsand-enterprises)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nFamilyWall users and authorized assistants use this skill to read and update family organization data, including events, lists, messages, member locations, meals, recipes, wall posts, and media attachments.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Media download by URL can send FamilyWall session credentials to an arbitrary URL.\n\nMitigation: Use media download --url only with URLs copied directly from FamilyWall media listings, and prefer media-ID downloads when possible.\n\nRisk: Media download output paths can write files outside the intended download area.\n\nMitigation: Download media only into a dedicated empty directory and review output paths before use.\n\nRisk: Command outputs can expose private family data such as locations, member details, messages, and media metadata.\n\nMitigation: Run the skill only in trusted environments and keep generated outputs, logs, and downloaded files access-restricted.\n\n## Reference(s):\n\n- [FamilyWall API Reference](https://snowsand.atlassian.net/wiki/spaces/SD/pages/38436865)\n- [FamilyWall Skill Page](https://clawhub.ai/snowsand-enterprises/skills/snowsand-familywall)\n- [FamilyWall Publisher Profile](https://clawhub.ai/user/snowsand-enterprises)\n\n## Skill Output:\n\n**Output Type(s):** [Text, JSON, Shell commands, Files, Guidance]\n\n**Output Format:** [Markdown guidance with shell commands; CLI responses are JSON and media downloads are files.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses FamilyWall account credentials from environment variables and can read or modify private family data.]\n\n## Skill Version(s):\n\n1.3.0 (source: SKILL.md frontmatter and release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec... Skill: FamilyWall Owner: snowsand-enterprises Summary: Interact with the FamilyWall family organization platform. Manage calendar events, shopping lists, tasks, family messaging, member locations, meal plans, rec... Tags: latest:1.3.0 Version history: v1.3.0 | 2026-05-18T13:54:46.787Z | user Add media downloading support: list media in threads, download by URL/media-ID, download-all from thread. Messages and wall pos","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1093,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T17:36:43.789Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T21:00:32.332Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}