Self-awareness — Wisp's actual capabilities

SkillMedia

Wisp-science's actual agent tool surface and runtime boundaries. Load this when deciding which Wisp tool can perform a task, checking whether Python can reach agent or desktop capabilities, choosing between interactive analysis and persisted Runs, or answering questions about delegation, images, skills, memory, artifacts, lineage, credentials, session history, and other self-introspection capabilities.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Self-awareness — Wisp's actual capabilities skill

What this skill tells your AI

The instructions your AI receives, as published by xuzhougeng/wisp-science in skills/self-awareness/SKILL.md and read by ahel’s review.

Use only tools advertised in the current conversation. Wisp exposes agent and desktop capabilities as explicit tools; do not assume that an SDK documented by another application also exists here. Some tools are conditional on the desktop session, project settings, execution context, or capability grants. If a tool is not advertised, treat it as unavailable.

Python and R boundary

Use python for persistent Python analysis and r for persistent R analysis. Their variables and imports persist per conversation and execution context within the project/scope; parallel conversations do not share interpreter state. In the desktop, an omitted context_id uses the conversation's selected default context (falling back to local). Pass local, ssh:<alias>, or wsl:<distro> explicitly when needed. The CLI's language runtimes are local.

The Python worker initializes an ordinary namespace with common standard-library modules and any available convenience packages. It does not inject a Wisp control-plane object. Code executed with python therefore cannot directly call the agent model, spawn Agents, submit or monitor Runs, inspect Wisp credentials, or query internal project/session metadata. Leave the Python cell and call the corresponding Wisp tool instead.

Capability reference

NeedWisp interfaceAvailability and boundary
Read, create, or patch project filesread, write, editOperate on normal filesystem paths within the granted workspace.
Find files or textsearch, grepUse before broad manual inspection.
Run a short commandshellUse for bounded foreground commands, not as a long-running job manager.
Interactive Python or R analysispython, rPersistent per conversation and execution context; no injected control-plane SDK.
Inspect a local imageview_imageExplicit tool call for a supported local image; this is not a Python method.
Track a multi-step planupdate_planUpdate task progress when a plan materially helps.
Present the completed resultattempt_completionWisp's normal completion path; there is no separate structured-output submission SDK.
Audit configured workflow guidancelist_skill_catalogPage through discovered/effective records and use its explicit counts.
Discover and load workflow guidancesearch_skills, use_skillSearch by task/domain, then load the exact returned skill name.
Search confirmed project notessearch_memoryAvailable only when project memory is enabled. New notes are proposed after a completed turn and require confirmation in the Wisp UI; there is no direct memory-write tool.
Delegate multi-file codebase readingexploreRead-only sub-Agent with its own context and read/grep/search access.
Delegate general bounded tasksdelegate_tasksDesktop-only and capability-gated. Use it only when its schema is advertised; it is not callable from Python.
Read a truncated delegated resultget_delegated_resultDesktop-only and available with delegation. Use only when the compact result lacks necessary detail.
Submit long-running workrun_in_contextPersist a Run in local, ssh:<alias>, or wsl:<distro>. Prefer this over extending shell timeouts.
Read one Run snapshotget_runCall once for an immediate status check; never poll it in a loop.
Wait for a Runmonitor_runCall with the Run id to wait without polling get_run. If wait_interrupted is true, respond, then call monitor_run again; do not resubmit.
Cancel a Runcancel_runRequest cancellation through the persisted Run lifecycle.
Record project research objectsresearch_graphDesktop-only. Record data assets, papers, or decisions and link existing graph nodes; it is not a generic artifact browser.
Read or change app preferences, or show disk storageconfigureDesktop-only. get / set cover allowlisted appearance and general settings (font size, theme, custom_css, locale, compaction). storage reports this project's workspace plus app-data usage in the conversation. Secrets, API keys, model profiles, workspace directory, and proxy are not writable. For a restyle, load custom-theme then set custom_css.
Create or update a specialistsave_specialistDesktop-only. Omit id to create; pass id from configure get specialists to update. Builtin instruction text stays pinned. Deletion remains in Settings.
Make an extra model call from PythonNot availableContinue through the normal agent turn. For bounded delegated work, use explore or advertised delegate_tasks.
Resolve artifact ids to paths, list a generic artifact store, or inspect lineageNot availableUse ordinary project paths plus read/search/grep. Do not invent artifact ids, version ids, or lineage records. Run output registration is limited to the explicit output_specs contract of run_in_context.
Read credentials from Python or an agent toolNot availableWisp keeps secrets outside SQLite in its keyring path; no credential accessor is exposed to the agent.
Query frames, token/cost accounting, tool-call history, or the internal metadata DBNot availableUse only conversation context and tool results already provided. Do not claim access to hidden session tables or telemetry.

Choosing the right execution path

  1. shell executes short commands in fresh processes; python and r retain interpreter state across calls. Choose based on the user's workflow, state reuse, script requirements, and task lifecycle. Use the selected environment and keep reproducible source in project files with either method.
  2. Persistent runtimes support interactive analysis and reuse of loaded objects. Execute saved analysis with script_path and required_objects when it consumes existing bindings. Do not move it to a fresh process merely because it takes time. Match execution to the script's process requirements.
  3. Use run_in_context for standalone background, remote, or long-running work. Use monitor_run when the result is needed in the current task (again after wait_interrupted; do not resubmit), or return the Run id for fire-and-forget work.
  4. Use explore when codebase understanding requires more than a couple of reads. Use delegate_tasks only when desktop delegation is currently advertised and the work benefits from independent or parallel Agents.
  5. Use ordinary project files for inputs and outputs. Never fabricate an artifact registry, lineage API, credential API, session database, or Python-side bridge for a capability that is not present.

For SSH-direct details, load remote-compute-ssh; its Run workflow and current limitations are the authoritative Wisp contract.

Signals

GitHub stars
1k
Forks
117
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
self-awareness-xuzhougeng
Source
github.com/xuzhougeng/wisp-science