Application Scripting Using KJSEmbed KJSEmbed defines an API that aims to make it easy for application developers to embed the KDE Javascript implementation (kjs) within their applications. Companies such as Apple already use the kjs library in this way and KJSEmbed provides a standard API for doing the same within KDE. This paper will describe the design of the KDE 3 KJSEmbed, and try to identify both the positive and negative aspects of that implementation. It will then describe the design of the KDE 4 version of KJSEmbed and how it tries to address the weaknesses of the previous implementation while retaining its strengths. The presentation will describe some of the trade-offs that have been made in the design, and will explain the reasoning behind them; it will also describe some of the problems that have been encountered and the approaches taken to address them. There are some unusual aspects to the implementation of KJSEmbed that are the result of both facilities offered by Qt and of the design choices, these implementation details and the reasoning behind them will be highlighted in particular. The intended audience for this paper is both application authors who plan on adding support for scripting their applications, and also developers who hope to work on the application scripting platforms themselves. Ultimately it should provide an overview of both the current state of KJSEmbed, the design decisions that lead to the implementation and the reasoning behind the choices made.