diff --git a/callsite/callsite-tests.ts b/callsite/callsite-tests.ts
new file mode 100644
index 000000000..fcabcd8b5
--- /dev/null
+++ b/callsite/callsite-tests.ts
@@ -0,0 +1,21 @@
+
+///
+
+import callsite = require("callsite");
+
+var stack = callsite();
+var p = stack[0];
+
+console.log(p.getThis());
+console.log(p.getTypeName());
+console.log(p.getFunctionName());
+console.log(p.getMethodName());
+console.log(p.getFileName());
+console.log(p.getLineNumber());
+console.log(p.getColumnNumber());
+console.log(p.getFunction());
+console.log(p.getEvalOrigin());
+console.log(p.isNative());
+console.log(p.isToplevel());
+console.log(p.isEval());
+console.log(p.isConstructor());
diff --git a/callsite/callsite.d.ts b/callsite/callsite.d.ts
new file mode 100644
index 000000000..be73af4de
--- /dev/null
+++ b/callsite/callsite.d.ts
@@ -0,0 +1,30 @@
+// Type definitions for callsite 1.0.0
+// Project: https://github.com/tj/callsite
+// Definitions by: newclear
+// Definitions: https://github.com/newclear/DefinitelyTyped
+
+declare module "callsite" {
+
+ module Callsite{
+
+ interface CallSite {
+ getThis(): any;
+ getTypeName(): string;
+ getFunctionName(): string;
+ getMethodName(): string;
+ getFileName(): string;
+ getLineNumber(): number;
+ getColumnNumber(): number;
+ getFunction(): Function;
+ getEvalOrigin(): string;
+ isNative(): boolean;
+ isToplevel(): boolean;
+ isEval(): boolean;
+ isConstructor(): boolean;
+ }
+ }
+
+ function Callsite(): Callsite.CallSite[];
+
+ export = Callsite;
+}