Skip to content
Agentmart
Submit a tool

persistent-python

Skill by AnswerDotAI

IndexedApache-2.0★ 20
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/answerdotai-persistent-python

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

The publisher has not written a description yet.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions: not checked yet.

What's inside

Skill name
persistent-python
Description
None
License
Apache-2.0
Instructions
18 lines in SKILL.md · view on GitHub

Before installing

  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Agent Skills spec issues

  • invalid YAML frontmatter: Nested mappings are not allowed in compact mappings at line 2, column 14:
  • name: missing
  • description: missing

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Persistent Python

ALWAYS use the `clikernel` MCP server for ALL Python work: writing code, editing code or notebooks, running or debugging anything, inspecting objects or packages, probing APIs, and transforming data. It is the workbench for every task in this environment. If the work could go through Python, it goes through clikernel. Do not fall back to `python -c`, shell heredocs, or ad hoc scripts.

The server's `py` tool runs code in one persistent IPython session, so imports, variables, monkeypatches, and cached objects carry across calls. Check the clikernel MCP server instructions already in your context before the first call. The first `py` creates the kernel, and its reply opens with the startup banner: what is imported, and which cells to run next. Follow it. If the banner reports that project imports were skipped, or no banner appears, report that to the user before other work. Then run the guarded import block from `$XDG_CONFIG_HOME/clikernel/startup.py` (default `~/.config/clikernel/startup.py`) as one `py` call. That file is the single source of truth for bootstrap imports; never retype them from memory.

The server instructions and startup docs cover the tools, notebook magics, output shape, interaction rules, reload gotchas, and pyskills workflow, so this skill does not repeat them. `list_pyskills()` shows the available tooling. Prefer a relevant pyskill over ad hoc code.

## Environment specifics

The following apply specifically to this environment:

- After a kernel restart or compaction, read `doc(f)` again for any tooling function whose docs are no longer in your context.
- Read and search through clikernel tools, never Bash or the harness's file reader. For an overview, start with exhash's `open_doc` outline, then open one section. To view a file or a line range, use `view_file` from `fastcore.editskill`. Search with `rgapi`. Switch to `lnhashview_*` once an edit is plausible.
- Use `exhash` for ALL edits -- code, tests, config, prose, notebook cells -- never the harness's built-in file-edit tools, and read with `lnhashview_*` (not the harness's file reader) the moment an edit is plausible. `aidialog.dlgskill` covers the structural cell/message operations exhash doesn't; `fastcore.tools` file editors are the rare fallback where exhash can't express a text edit.
- Claude Code settings are plain JSON: `~/.claude/settings.json` (user-global), `.claude/settings.json` (project, committed), `.claude/settings.local.json` (project, personal); later files override earlier. Edit them with the normal kernel tooling (`lnhashview_file` + `%%exhash`), merging into existing keys rather than replacing, then verify with a duplicate-key-rejecting parse - `json.loads(s, object_pairs_hook=<raiser>)` - because `json.loads` alone silently keeps the last duplicate while the stricter serde parsers that also consume these files (codex) reject the file outright. Useful facts: a BARE tool name in `permissions.deny` removes that tool from the system prompt entirely, while a scoped rule (`Bash(rm *)`) only blocks matching calls; hooks live under `"hooks"` keyed by event (PreToolUse, SessionStart, UserPromptSubmit, ...); `skillOverrides` hides bundled skills (`"off"`, or `"user-invocable-only"` to keep the slash command usable by the user). Settings load at startup, so changes take effect from the next session.
- Codex settings are TOML: `~/.codex/config.toml` is user-global, while trusted `.codex/config.toml` files apply from the project root down to the current directory, with the closest project file winning. CLI overrides have higher precedence. Hooks can live in `hooks.json` or inline `[hooks]` tables at user and project config layers; matching hooks from every active layer are merged. `PreToolUse` can inspect, deny, or rewrite Bash, `apply_patch`, MCP, and most other local tool calls. `[[skills.config]]` entries enable or disable skills by path, while `mcp_servers.<id>.enabled_tools` and `disabled_tools` control which MCP tools are exposed. Do not disable Bash or `apply_patch` merely because clikernel is preferred; first establish that sessions misuse them. Config changes take effect after restarting Codex.

From AnswerDotAI/aai-coding, Apache-2.0.

Signals

Stars
20
Forks
7
Open issues
0
Last commit (this folder)
Sep 24, 2026 (1 month ago)
Last release
Sep 4, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from AnswerDotAI

Cite this page

persistent-python skill. Agent Mart. https://agentmart.dev/skills/answerdotai-persistent-python (last updated 2026-10-24)