← Back to Skills Marketplace
pinkgranite

easypaper

by Yuwei Yan · GitHub ↗ · v1.0.3 · MIT-0
cross-platform ✓ Security Clean
189
Downloads
0
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install easypaper
Description
Generate academic papers from metadata using EasyPaper Python SDK. Use when user wants to create structured LaTeX papers programmatically. References the Eas...
README (SKILL.md)

EasyPaper Skill

Generate structured academic papers from metadata using the EasyPaper multi-agent system via Python SDK.

Repository

Source: https://github.com/PinkGranite/EasyPaper

Primary Reference Directory: plugins/easypaper/

This directory contains comprehensive guidance for OpenClaw agents:

  • Commands: Workflow execution contracts in plugins/easypaper/commands/
  • Skills: Domain-specific skills in plugins/easypaper/skills/
  • Plugin Documentation: Setup and usage in plugins/easypaper/.claude-plugin/README.md

Installation

Python Package

Important: Install EasyPaper in an isolated environment (recommended for dependency management).

Using venv:

python -m venv easypaper-env
source easypaper-env/bin/activate  # On Windows: easypaper-env\Scripts\activate
pip install easypaper

Using conda:

conda create -n easypaper python=3.11
conda activate easypaper
pip install easypaper

Direct install (not recommended):

pip install easypaper

LaTeX Toolchain

EasyPaper requires LaTeX toolchain (pdflatex + bibtex) for PDF compilation. Install based on your system:

macOS:

# Using Homebrew (recommended)
brew install --cask mactex

# Or minimal installation
brew install basictex
sudo tlmgr update --self
sudo tlmgr install collection-basic collection-latex collection-bibtexextra

Linux (Ubuntu/Debian):

sudo apt-get update
sudo apt-get install texlive-latex-base texlive-bibtex-extra texlive-latex-extra

Linux (Fedora/RHEL):

sudo dnf install texlive-scheme-basic texlive-bibtex texlive-latex

Windows:

  • Download and install MiKTeX (full installer recommended)
  • Or use TeX Live
  • Ensure pdflatex and bibtex are in your PATH

Poppler (for PDF-to-image conversion)

macOS:

brew install poppler

Linux (Ubuntu/Debian):

sudo apt-get install poppler-utils

Linux (Fedora/RHEL):

sudo dnf install poppler-utils

Windows:

  • Download from Poppler for Windows
  • Extract and add bin directory to PATH
  • Or use conda: conda install -c conda-forge poppler

Quick Start

Recommended workflow: Prepare a metadata.json (see examples/meta.json), parse it as PaperGenerationRequest, then run with to_metadata() + to_generate_options().

Typesetter behavior (SDK + Server): PDF compilation prefers in-process Typesetter when available (SDK self-contained). If no local peer is available, EasyPaper falls back to the HTTP Typesetter endpoint (AGENTSYS_SELF_URL).

Load from file and generate

import asyncio
from pathlib import Path
from easypaper import EasyPaper, PaperGenerationRequest

async def main():
    ep = EasyPaper(config_path=str(Path("configs/dev.yaml").resolve()))
    
    request = PaperGenerationRequest.model_validate_json_file("metadata.json")
    metadata = request.to_metadata()
    options = request.to_generate_options()

    result = await ep.generate(metadata, **options)
    print(f"Status: {result.status}, Words: {result.total_word_count}")

asyncio.run(main())

Inline metadata

import asyncio
from easypaper import EasyPaper, PaperMetaData

async def main():
    ep = EasyPaper(config_path="configs/dev.yaml")
    
    metadata = PaperMetaData(
        title="My Paper Title",
        idea_hypothesis="...",
        method="...",
        data="...",
        experiments="...",
        references=["@article{...}"],
    )
    
    result = await ep.generate(metadata)
    print(f"Status: {result.status}, Words: {result.total_word_count}")

asyncio.run(main())

Key Reference Files

When working with EasyPaper, refer to these files in the repository:

Commands (Workflow Execution)

Skills (Domain Guidance)

Configuration and Examples

PaperMetaData Fields

Required:

  • title, idea_hypothesis, method, data, experiments, references

Optional:

  • style_guide (venue name), target_pages, template_path, figures, tables, code_repository, export_prompt_traces

See examples/meta.json and economist_example/metadata.json for full examples. Treat examples/meta.json as a full PaperGenerationRequest sample: use request = PaperGenerationRequest.model_validate_json_file(...), then request.to_metadata() and request.to_generate_options() for SDK generation.

Final PDF Selection

When review loop is enabled, multiple iteration PDFs can exist. Always report the final artifact using this priority:

  1. result.pdf_path (authoritative final output)
  2. Under result.output_path: iteration_*_final/**/*.pdf
  3. Under result.output_path: latest iteration_* directory PDF
  4. result.output_path/paper.pdf (last fallback)

If no PDF is found, report that final PDF is unavailable and include recent compile errors.

Streaming Generation

from easypaper import EasyPaper, PaperMetaData, EventType

async for event in ep.generate_stream(metadata):
    if event.event_type == EventType.PHASE_START:
        print(f"▶ [{event.phase}] {event.message}")
    elif event.event_type == EventType.COMPLETE:
        result = event.data["result"]
        print(f"Done! {result['total_word_count']} words")

When to Use This Skill

Use this skill when:

  • User wants to generate academic papers programmatically
  • User needs to understand EasyPaper SDK usage
  • User asks about paper generation workflows
  • User needs venue-specific formatting guidance

For detailed workflows and execution contracts, refer to files in plugins/easypaper/ directory.

Usage Guidance
This skill is internally coherent for generating LaTeX papers, but take these precautions before installing or running it: - Install and run inside an isolated environment (venv or conda) and avoid system-wide installation. - Inspect the easypaper package source (PyPI/GitHub) before pip installing to confirm no unexpected behavior or network calls. - Check configs/dev.yaml and any example config for embedded credentials; do not use sensitive metadata for initial tests. - Ensure AGENTSYS_SELF_URL is unset or points to a trusted endpoint if you want to avoid automatic fallback to a remote typesetter (which would send document content over the network). - Prefer testing with dummy/non-sensitive documents first and monitor network activity while the SDK runs. If you want higher confidence, provide the actual package source (PyPI package link or repository tarball) so it can be further inspected; absence of code in the skill package means some risk comes from the external Python package it instructs you to install.
Capability Analysis
Type: OpenClaw Skill Name: easypaper Version: 1.0.3 The easypaper skill provides documentation and code examples for an academic paper generation SDK. It includes standard installation instructions for Python packages and LaTeX toolchains, and guides the agent on how to handle metadata and PDF artifacts. No evidence of malicious intent, data exfiltration, or harmful prompt injection was found in SKILL.md or _meta.json.
Capability Assessment
Purpose & Capability
The name/description align with the instructions: installing the EasyPaper Python SDK, a LaTeX toolchain, and Poppler are coherent for programmatic LaTeX/PDF generation. There are no unrelated binaries or credentials demanded. Minor inconsistency: the doc references an HTTP Typesetter fallback (AGENTSYS_SELF_URL) but that environment variable is not declared as required.
Instruction Scope
SKILL.md stays within the paper-generation scope (install SDK, prepare metadata.json/configs/dev.yaml, call EasyPaper.generate). It does, however, describe a fallback to an HTTP Typesetter endpoint (AGENTSYS_SELF_URL) if no local typesetter is available — that implies possible network transmission of document content to an external service. Also the instructions expect reading local config files (configs/dev.yaml) and metadata files (metadata.json), which is reasonable for the task but means local files and any secrets inside configs could be accessed by the SDK at runtime.
Install Mechanism
There is no platform install spec in the registry; the SKILL.md recommends 'pip install easypaper' and system package installs (TeX, poppler). Installing a Python package from PyPI runs third-party code on your system — normal for this use case but warrants caution: inspect the package source or run in an isolated environment (venv/conda) before trusting it.
Credentials
The skill declares no required env vars or credentials, which aligns with its purpose. However, SKILL.md references AGENTSYS_SELF_URL as an HTTP Typesetter fallback and expects config files (configs/dev.yaml). At runtime the SDK or plugin may read environment variables and config files not listed here; these could contain sensitive values. The absence of declared env vars reduces suspicion, but you should verify what the installed package actually reads.
Persistence & Privilege
The skill is not forced-always and has no install spec that would create persistent privileges; autonomous invocation is enabled (default) but that is expected. There is no evidence it attempts to modify other skills or system-wide agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install easypaper
  3. After installation, invoke the skill by name or use /easypaper
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
EasyPaper Skill 1.0.3 - Clarified Typesetter behavior: SDK prefers in-process compilation for PDFs and falls back to HTTP endpoint if needed. - Added section on "Final PDF Selection," detailing the priority order for finding and reporting the final output PDF. - No code or functional changes—documentation improvement only.
v1.0.2
- Updated recommended integration to use PaperGenerationRequest for input parsing and generation options extraction. - Adjusted the Quick Start section to show the new workflow using request.to_metadata() and request.to_generate_options(). - Clarified the metadata input format and emphasized using PaperGenerationRequest as a wrapper for full JSON examples. - Minor clarifications in references to examples and documentation files for more direct SDK usage guidance. - No functional or API changes; documentation only.
v1.0.1
v1.0.1 adds detailed installation and environment setup instructions for EasyPaper. - Expanded documentation with step-by-step guides for Python and system dependencies (LaTeX toolchain, Poppler, virtual environments). - Clarified generation options vs. metadata fields; documented how to load metadata and pass workflow options. - New reference to setup-environment skill for automated environment setup. - Updated pointers to multiple example metadata files and improved Quick Start examples. - No functional changes to code or interface; documentation only.
v1.0.0
EasyPaper skill initial release: - Enables programmatic generation of academic papers from metadata using the EasyPaper Python SDK. - Provides comprehensive setup and usage examples, including installation and basic usage code. - References key workflow and skill files in the EasyPaper repository for detailed guidance. - Documents required and optional metadata fields for paper generation. - Includes instructions for streaming generation and agent workflows. - Offers venue-specific formatting options and academic writing guidance.
Metadata
Slug easypaper
Version 1.0.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is easypaper?

Generate academic papers from metadata using EasyPaper Python SDK. Use when user wants to create structured LaTeX papers programmatically. References the Eas... It is an AI Agent Skill for Claude Code / OpenClaw, with 189 downloads so far.

How do I install easypaper?

Run "/install easypaper" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is easypaper free?

Yes, easypaper is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does easypaper support?

easypaper is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created easypaper?

It is built and maintained by Yuwei Yan (@pinkgranite); the current version is v1.0.3.

💬 Comments