Install
openclaw skills install oasisEnables an agent to work inside Oasis 3D worlds — place catalog objects, craft procedural scenes with shaders and textures, paint ground tiles, move avatars, take screenshots, and drive Forge text-to-3D conjuration through the Oasis MCP tool surface.
openclaw skills install oasisOasis is a local-first 3D world that agents can inspect, modify, navigate, and build through a shared MCP tool surface. Humans run Oasis on their laptop; agents use these tools to co-create 3D scenes with them in real time.
This skill teaches you HOW TO USE those tools effectively once the user has already connected you to their Oasis. It does not cover installation — see the user's setup docs at https://parzival-moksha.github.io/oasis/docs/getting-started/quickstart/ if they need help connecting.
Use this skill when:
Do not use this skill for generic coding unless Oasis integration is part of the task.
The Oasis MCP tool surface supports:
get_world_state, get_world_info)search_assets, query_objects)place_object, modify_object, remove_object)craft_scene, get_craft_guide, get_craft_job)set_sky, set_ground_preset, paint_ground_tiles, add_light, modify_light)set_avatar, walk_avatar_to, play_avatar_animation, list_avatar_animations)screenshot_viewport, screenshot_avatar, avatarpic_merlin, avatarpic_user)conjure_asset, process_conjured_asset, place_conjured_asset, list_conjured_assets, get_conjured_asset, delete_conjured_asset)list_worlds, create_world, load_world, clear_world)set_behavior)The agent should usually:
get_world_state or get_world_info to understand the current scenequery_objects or search_assets as neededWhen the user asks you to build something procedural (a campfire, a shrine, a crystal cluster, a fountain), you write the primitives yourself and pass them as the objects array to craft_scene. Do not delegate to the sculptor unless explicitly asked.
craft_scene({
name: "Arcane campfire",
position: [0, 0, 0],
objects: [
{ type: "cylinder", position: [0, 0.08, 0], scale: [0.55, 0.08, 0.55], color: "#3b2a1d", roughness: 0.92 },
{ type: "flame", position: [0, 0.3, 0], scale: [0.22, 0.35, 0.22], color: "#fff4dd", color2: "#ff7a00", color3: "#9b1d00" },
{ type: "particle_emitter", position: [0, 0.75, 0], scale: [0.45, 0.85, 0.45], color: "#ffb347", particleCount: 80, particleType: "ember" },
{ type: "crystal", position: [0.65, 0.32, 0.1], scale: [0.22, 0.6, 0.22], rotation: [0.14, 0.3, -0.08], color: "#4338ca", color2: "#8b5cf6", seed: 11 }
]
})
What you have access to (call get_craft_guide for the live spec):
box, sphere, cylinder, cone, torus, plane, capsule, textflame, flag, crystal, water, particle_emitter, glow_orb, aurorarotate, bob, pulse, swing, orbit (with type, speed, axis, amplitude)stone, cobblestone, marble, concrete, grass, sand, snow, metal, wood, kn-planks, kn-cobblestone, kn-roof, kn-wall. Apply via texturePresetId + textureRepeat.metalness, roughness, opacity, emissive, emissiveIntensity, color2, color3Rules the craft runtime enforces:
craft_scene({ prompt: "...", strategy: "sculptor" }) delegates scene generation to a separate coder subprocess on the Oasis host. It costs a real LLM call, takes several seconds, and streams primitives in as they arrive. Use it only if:
Otherwise: self-craft. You are an LLM. You can write the JSON.
These are the five prompts a user typically sends to verify the connection. Each escalates what it proves working:
hi. You reply. Proves: chat layer works.describe this world. You call get_world_state and narrate sky/ground/object counts. Proves: MCP transport up.find a cyberpunk streetlamp and place one in front of me. Expected: search_assets then place_object, the streetlamp appears.craft a small campfire with embers and a crystal cluster. Expected: craft_scene with an objects array (not sculptor).take a screenshot and tell me what you see. Expected: screenshot_viewport with mode: "current".If step 1 passes but step 2 fails, the user's Oasis MCP transport is unreachable from your side. Point them at the troubleshooting section of https://parzival-moksha.github.io/oasis/ .
If step 2-4 pass but step 5 fails, the Oasis browser tab is closed or the screenshot bridge is not mounted. Ask the user to open the Oasis in their browser.
Screenshot tools depend on a live Oasis browser client — the user must have Oasis open in a browser tab for vision tools to work.
defaultAgentType="hermes" so agent-view captures resolve cleanly.screenshot_viewport with mode: "current" or views: [{ mode: "current" }].screenshot_avatar with style: "third-person" or screenshot_viewport with mode: "third-person-follow".screenshot_viewport call with a views array for multi-angle capture instead of many separate screenshot calls.browser_* tools for Oasis world vision; those browsers run remotely and may point at the wrong world.Oasis has three different truths you should keep straight:
get_world_state / get_world_infoImportant:
Oasis exposes Forge conjuration for generating new 3D assets from text when the catalog lacks what you need:
list_conjured_assets — what's already been generatedget_conjured_asset — inspect a specific asset's statusconjure_asset — start a Meshy or Tripo generationprocess_conjured_asset — texture, remesh, rig, or animate an existing assetplace_conjured_asset — place a conjured asset in the worlddelete_conjured_asset — remove from world and optionally from the Forge registryUse them like this:
conjure_asset to start generationprocess_conjured_asset for texture, remesh, rig, or animateplace_conjured_asset to place or reposition an existing conjured assetIf the user wants a new 3D asset rather than a catalog asset, prefer these tools over pretending the asset already exists. Do not claim a generation is finished until the conjured asset status actually says so.
search_assets then place_object. Use craft_scene for procedural primitives, not catalog assets.The core tool surface (world state, placement, self-crafting, screenshots, plain chat, avatar movement) works with zero API keys. If a richer feature is needed and the key isn't set, the tool call returns a clear error. Do not retry — tell the user what key is missing.
Optional Oasis-side feature keys (the user sets these in their own Oasis .env, agent never touches them):
OPENROUTER_API_KEYFAL_KEYELEVENLABS_API_KEYMESHY_API_KEYTRIPO_API_KEYcraft_scene sculptor fallback → Claude Code CLI installed on Oasis hostOnce connected, verify the tool surface in this order:
get_world_infoget_world_statesearch_assetsIf get_world_info works but screenshot tools fail, the MCP transport is up and the browser bridge is the missing link — ask the user to open / focus their Oasis browser tab.
references/current-oasis-transport.md for the current Oasis MCP transport shape.